一.信号与槽
1.QT元对象系统
QT元对象系统提供三件事情:
1.QObject类
2.Q_OBJECT 宏,声明在类私有段中
3.moc编译器:为每个Qobject子类对象生成实现元对象特性(如信号槽)的代码。
moc读入c++源文件,若发现存在Q_OBJECT 宏的对象,就会将这个宏展
开生成moc文件,包含元对象实现的代码。
2.connect 函数
QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)
连接类型:Qt::AutoConnection:默认自动连接,接收和发送信号在同一线程。
3.moc文件中可以看出:
1)信号本质是一个函数;
2)信号与槽如何调用,通过索引调用
3)信号与槽返回值是void类型,这个与connect最后一个参数有关,若接收和发送信号在同一线程,则默认链接类型为自动连接:Qt::AutoConnection,若不在则为队列连接:Qt::QueuedConnection,这是异步调用,为了通用性,信号与槽返回值是void类型。
二.用户界面对象类

QObject:所有QT对象的基类
QCoreApplication:为没有ui的应用程序提供一个事件循环
QGuiApplication:管理GUI应用程序(大管家)
QApplication:管理GUI应用程序(大管家)
QWidget:所有用户界面对象的基本类
Widget:自己定义

本文详细介绍了QT框架中的信号与槽机制,包括元对象系统、connect函数和moc文件的作用。此外,还列举了各种用户界面对象类,如QWidget、QPushButton、QLabel等,并探讨了QFile、QDir、QTcpServer和QTcpSocket在网络通信中的应用,以及QSerialPort、QImage等其他重要类的使用。QT通过信号和槽实现了类间的通信,并提供了丰富的UI组件和文件操作功能。
最低0.47元/天 解锁文章
1418

被折叠的 条评论
为什么被折叠?



