Qt学习系列之学习积累1
1-foreach
foreach(variable ,container);
foreach有点类似于for,container是包含了所有的可能,而variable是其中的一种。
QStringList slt = {"qwe", "we'r", "ert", "ert"};
foreach(QString s , slt ){ 具体操作}
2-Q_UNUSED
Q_UNUSED(arg1);
在一些程序中看到Q_UNUSED(arg1)语句,其实就是避免出现警告,没有任何实质性的作用。
在程序出现warning: unused parameter ‘arg1′ [-Wunused-parameter]
问题:
可以尝试两种解决办法:
1、在对应的函数中添加
Q_UNUSED(arg1);
2、在pro项目中添加
QMAKE_CXXFLAGS += -Wno-unused-parameter
从而忽视掉警告
3-TCP与DUP
TCP
1、 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
2、传输控制协议(TCP,Transmission Control Protocol)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
DUP
UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
4-定时器使用
QTimer *testTimer = new QTimer(this); //创建定时器
connect( testTimer,SIGNAL(timeout()), this, SLOT(testFunction()) ); //将定时器超时信号与槽(功能函数)联系起来
testTimer->start(10); //开始运行定时器,定时时间间隔为1000ms
5-QMessageBox
QMessageBox是信息提示框
Question消息框
QMessageBox::question(NULL, "question", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
Information消息框
QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
Warning消息框
QMessageBox::warning(NULL, "warning", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
Critical消息框
QMessageBox::critical(NULL, "critical", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
About消息框
QMessageBox::about(this, tr("About消息框"));
AboutQt消息框
QMessageBox::aboutQt(this, tr("About Qt消息框"));
自定义QMessageBox
QMessageBox msgBox;
msgBox.setText("自定义消息");
msgBox.exec();//显示自定义消息框
6-删除
tcpSocket->deleteLater();
查询了一下,QObject::deleteLater()并没有将对象立即销毁,而是向主消息循环发送了一个event,下一次主消息循环收到这个event之后才会销毁对象。 这样做的好处是可以在这些延迟删除的时间内完成一些操作,坏处就是内存释放会不及时。
参考:
1.https://www.cnblogs.com/lomper/p/3959771.html
2.https://blog.csdn.net/weixin_39568531/article/details/79174582
3.https://www.cnblogs.com/zhoug2020/p/10094855.html
4.https://blog.csdn.net/c54514331/article/details/80954352