Qt定时器可以做后台使用

it2022-05-05  153

使用Qt定时器并不会影响主线程的进行,相当于自己可以开一个后台。比如,我做了一个客户端,想要每隔1s向服务器要数据,那么也即每隔1s向客户端发送接收请求,除了再开一个线程的方法,我们也可以Qt里的定时器,使用方法如下:

在构造函数下构造一个定时器,每0.5s做出响应,sendMessage()函数根据自己的要求定义即可:

QTimer *testTimer = new QTimer; connect( testTimer,SIGNAL(timeout()), this, SLOT(sendMessage()) );//接收到testTimer发出timeout的信号时,调用sendMessage()函数 testTimer->start(5000); //计时到0.5s,即发出一个timeout的信号

更多的关于定时器的使用方法可以访问 https://blog.csdn.net/andy_93/article/details/52776283

接下来是自己用Qt做界面时用到的:

1、界面显示gif动态图 首先添加图片资源到你所创的工程中,接着在对应的构造函数调用以下语句即可: (1)需要的头文件:

#include <QMovie> #include <QtGlobal>

(2)代码示例:

QMovie *movie; //创建一个QMovie对象 qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));//获取随机数 int test =qrand()%6; switch (test) { case 1:movie = new QMovie("资源文件路径");break; case 2:movie = new QMovie("资源文件路径");break; case 3:movie = new QMovie("资源文件路径");break; case 4:movie = new QMovie("资源文件路径");break; case 5:movie = new QMovie("资源文件路径");break; case 0:movie = new QMovie("资源文件路径");break; default:movie = new QMovie("资源文件路径");break; } ui->giflabel->setMovie(movie); //giflabel是自己在ui上创的一个标签 movie->start(); //这句不能丢

2、虚化lineedit框,就是让程序在运行时看不到这个框,将其作为专门的输出用 代码示例:

ui->soundLineEdit->setStyleSheet("background:transparent;border-width:0;border-style:outset");

3、Qt用socket收发消息可以用结构体

其他的自己也没怎么触摸到,感觉自己做的很掉价。。。


最新回复(0)