Qt中的类

一.信号与槽

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类型。

二.用户界面对象类
Qt中的类_第1张图片
QObject:所有QT对象的基类
QCoreApplication:为没有ui的应用程序提供一个事件循环
QGuiApplication:管理GUI应用程序(大管家)
QApplication:管理GUI应用程序(大管家)
QWidget:所有用户界面对象的基本类
Widget:自己定义的类,继承自QWidget类,为用户界面
QPaintDevice:可用QPainter绘制的对象的基本类

1.Widget类:ui界面
2.push Button:按钮
3.label:标签,标记(用于显示)
4.line edit:行编辑
5.ComboBox:下拉菜单,可右键添加
6.弹出对话框:QMessageBox
7.spinBox:上下选择框->setRange->valueChange(信号)
Qt中的类_第2张图片
8.QTimer:定时器(start/stop)
9.QTime:时间
10.Qdebug:调试输出类 QDebug() << “ ”;
11.progressBar:进度条
12.Lcdnumber:lcd显示
13.qsrand:随机数
①撒种子:qsrand(QTime::currentTime().msec())
注:获得当前时间的毫秒数是随机的。
②获取随机值:int num = qrand%10 num在(0-9)
14.Qlist:柔性链表模板,参考c++中的list
15.自定义信号:两个类对象,一发一收
①发信号:emit+自定义的信号,如信号(send(QString str)):emit send(“你好”);
②连接:信号槽
③调用槽函数处理
16.QFile类:提供了操作(读写)文件的接口(函数)
QDir类:提供了目录
Qt中的类_第3张图片

注:写入的时候有两种方式:① 全部按QString类型写入,便于阅读 :QTextStream文本流类
Qt中的类_第4张图片
② 按原有格式写入,便于操作:数据流类
Qt中的类_第5张图片
18.QFileDialog:提供一个允许用户选择/保存文件或目录的对话框
19.QIcon:图标类,提供不同模式和状态下的可缩放图标
20.QT网络通信:要加上QT += network
1)QTcpserver:提供一个基于TCP的服务器,用于监听
2)QTcpsocket:提供一个TCP套接字(可以理解为用于通信的线路/管道)
注:socket网络通信时readall一次读不完数据,需要使用waitForReadyRead函数
Qt中的类_第6张图片
Qt中的类_第7张图片
注:以上是服务器,需要QTcpserver(服务器)和QTcpsocket(通信套接字),而客户端只需要通信套接字发送连接请求,再开始通信。
21.QSerialPort:串口类
22.Qimage:提供一个独立于像素的图像表示
23.按表显示数据:
1)QTableView:提供视图实现/表视图的默认模型(ui)
2)QStandardItemModel:提供用于存储自定义数据的通用模型
Qt中的类_第8张图片
Qt中的类_第9张图片

总结:关于QT:QT是基于c++的更方便使用、更接近用户的图形界面制作软件;其中的每个工具都被封装成类(包括成员和方法);各个类工具传递信息是通过信号和槽实现,也可自定义信号。

你可能感兴趣的:(qt总结笔记,qt,ui,开发语言)