//启动定时器,1秒响应,用于模拟产生实时数据
this->startTimer(1000);
//定时器事件
这个THIS,指的是什么谢谢
代码网址http://tedeum.iteye.com/blog/2018706
QT中startTimer()在哪一个类中
答案:2 悬赏:20 手机版
解决时间 2021-02-13 17:34
- 提问者网友:人生佛魔见
- 2021-02-13 05:10
最佳答案
- 五星知识达人网友:深街酒徒
- 2021-02-13 05:58
this指的是当前类。
startTimer是QObject的一个方法。只要是QObject的子类,都可以使用这个方法。
你也可以不写this,直接调用startTimer(1000);也行。(除非当前类不是QObject子类)
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();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯