永发信息网

QT中startTimer()在哪一个类中

答案:2  悬赏:20  手机版
解决时间 2021-02-13 17:34
  • 提问者网友:人生佛魔见
  • 2021-02-13 05:10
//启动定时器,1秒响应,用于模拟产生实时数据
this->startTimer(1000);
//定时器事件
这个THIS,指的是什么谢谢
代码网址http://tedeum.iteye.com/blog/2018706
最佳答案
  • 五星知识达人网友:深街酒徒
  • 2021-02-13 05:58
this指的是当前类。
startTimer是QObject的一个方法。只要是QObject的子类,都可以使用这个方法。
你也可以不写this,直接调用startTimer(1000);也行。(除非当前类不是QObject子类)
全部回答
  • 1楼网友:往事埋风中
  • 2021-02-13 06:17
1.新建gui工程,在主界面上添加一个标签label,并设置其显示内容为“0000-00-00 00:00:00 星期日”。 2.在mainwindow.h中添加槽函数声明。 private slots: void timerupdate(); 3.在mainwindow.cpp中添加代码。 添加#include 的头文件包含,这样就包含了qtcore下的所有文件。 构造函数里添加代码: qtimer *timer = new qtimer(this); //新建定时器 connect(timer,signal(timeout()),this,slot(timerupdate())); //关联定时器计满信号和相应的槽函数 timer->start(1000); //定时器开始计时,其中1000表示1000ms即1秒 4.然后实现更新函数。 void mainwindow::timerupdate() { qdatetime time = qdatetime::currentdatetime(); //获取系统现在的时间 qstring str = time.tostring("yyyy-mm-dd hh:mm:ss dddd"); //设置系统时间显示格式 ui->label->settext(str); //在标签上显示时间 } 5.运行程序。 ====================================================== 以下是本人自己整理的代码: mainwindow.h #include #include #include #include "mainwindow.h" #include "ui_mainwindow.h" mainwindow::mainwindow(qwidget *parent) : qmainwindow(parent), ui(new ui::mainwindow) { ui->setupui(this); #if 0 qtimer *timer = new qtimer(this); connect(timer, signal(timeout()), this, slot(timerupdate())); timer->start(1000); #else qsrand(time(0)); starttimer(1000); // 返回值为1, 即timerid starttimer(5000); // 返回值为2 starttimer(10000); // 返回值为3 #endif } mainwindow::~mainwindow() { delete ui; } void mainwindow::on_btnlogin_clicked() { qmessagebox::information(this, "caption", tr("hello你好吗"), qmessagebox::ok); } #if 0 void mainwindow::timerupdate() { qdatetime time = qdatetime::currentdatetime(); qstring str = time.tostring("yyyy-mm-dd hh:mm:ss dddd"); ui->lblcurdate->settext(str); } #else void mainwindow::timerevent(qtimerevent *t) { switch(t->timerid()) { case 1: { qdatetime time = qdatetime::currentdatetime(); qstring str = time.tostring("yyyy-mm-dd hh:mm:ss dddd"); ui->lblcurdate->settext(str); ui->lbl1->settext(tr("每秒产生一个随机数: %1").arg(qrand() % 10)); ui->lbl1->adjustsize(); } break; case 2: ui->lbl2->settext(tr("5秒后软件将关闭")); ui->lbl2->adjustsize(); break; case 3: qapp->quit(); // 退出系统 break; } } #endif main.cpp #include #include #include "mainwindow.h" int main(int argc, char *argv[]) { qapplication a(argc, argv); qtextcodec::setcodecfortr(qtextcodec::codecforname("utf-8")); mainwindow w; w.show(); return a.exec(); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯