Qt -1

1.窗口show()的前后顺序不一样,显示会不一样

2.没有父对象的窗口,叫主窗口

3.Qobject connect(要发送消息的对象, 要发送的信号, 接收信号的对象, 接收信号的处理方式);

前两个参数称为对象, 后两个参数称为槽

4.输入框

enum EchoMode { NormalNoEchoPasswordPasswordEchoOnEdit };

Normal:正常输入模式

NoEcho:输入的时候不显示

Password:密码方式显示

PasswordEchoOnEdit:输入的时候为明文,切换焦点以后就变为密码模式

5.

button.setGeometry(30, 30, 100, 30);

这个按钮坐标的位置为(30,30),宽度为100,高度为30

6.

窗体类中有一个setGeometry方法可以设置窗体的位置。

控件也是窗体,控件也可以通过这个函数设置自己的位置

button.setGeometry(30, 30, 100, 30);

这个按钮坐标的位置为(30,30),宽度为100,高度为30

7.

为了不写很多槽函数,可以使用C++的lambda表达式,方法在工程管理文件中增加

CONFIG += C++11

使用的时候相当于将槽函数写成一个匿名函数。

8.消息处理函数是虚函数,使用要进行重载

9.消息处理流程:

QApplication先得到 -> 具体的处理的处理窗口 ::event() ->event()函数根据消息类型调用具体的虚函数

我们可以做:1.可以重载具体的虚函数来实现对消息的响应。

                      2.可以重载event()函数用来处理或者截断消息

10.鼠标的消息处理

同一时刻只有一个窗口处理鼠标事件,在构造函数中定义一个按钮,查看鼠标移动时坐标的变化。

鼠标停在谁上面就是谁处理。

11.在槽函数中可以通过sender()函数来获取消息的发送者

因为有可能多个Object的signal会连接到同一个signal(例如多个Button可能会connect到一个slot函数onClick()),因此这是就需要判断到底是哪个Object emit了这个signal,根据sender的不同来进行不同的处理

12.消息在传递过程中,从一个对象传递到另一个对象,然后又接着往下传递,在传递的过程中消息带的参数都是QEvent *

Qt 的事件对象有两个函数:accept()和ignore()。正如它们的名字一样,前者用来告诉 Qt,这个类的事件处理函数想要处理这个事件;后者则告诉 Qt,这个类的事件处理函数不想要处理这个事件。

13.常用窗体消息

窗口关闭:closeEvent

窗口显示:showEvent

窗口隐藏:hideEvent

窗口重回:paintEvent

14.notify函数是QApplication的成员函数,窗口会向应用程序通知正在处理的消息,通过这个函数,应用程序可以知道各个窗口当前要处理的消息。可以派生一个QApplication类,重载这个函数,获取程序当前正在处理的消息。

15.从1000开始到65535是用户自定义消息的范围,理论上用户可以自定义64535个消息。

16.

QApplication有postEvent和sendEvent用于发送消息

发送消息:

app.postEvent(&w, new QEvent(QEvent::MyUser));

app.sendEvent(&w, new QEvent(QEvent::MyUser));

消息可以发送给任何QObject对象,post和send发送消息是有区别的,post是立马返回,是非阻塞的,send必须要等消息发完才返回,是阻塞的。

17.控件的父类都是QWidget

18.按钮按下做什么事情

一种办法 可以定义一个clicked虚函数

另一种办法 用信号

19.

总结:

一个类:QObject

三个宏:Q_OBJECT, SIGNAL、SLOT

三个保留字:signals、slots、emit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值