用QTimer或者QBasicTimer
QTimer主要就是为计时而设计,QTimer类使用起来也很简单。举个小例子
假设构造函数有如下代码
QTimer timer = new QTimer(this);
timer->setInterval(1000); //1000ms == 1s
connect(timer,SIGNAL(timeout()),this,SLOT(display()));
对应的槽函数display定义如下
void MainWindow::display()
{
static int count = 0;
//增加时间计数
count++;
//显示当前的时间计数
label->setText(QString::number(count));
}
上面的代码就已经完成了你的要求。每间隔1秒,count就会加1,也就是说label上显示的数字为当前程序运行了多少秒。
QBasicTimer属于轻量级的计时类,它不继承自QObject,所以它不能给你提供信号和槽。
QBasicTimer的用法如下:
假设你头文件有如下定义
protected:
void timerEvent(QTimerEvent );
private:
QBasicTimer timer;
构造函数有如下调用
timerstart(1000,this);
最后重新实现的timerEvent函数如下
void MainWindow::timerEvent(QTimerEvent event)
{
static int count = 0;
if (event->timerId() == timertimerId()) {
//增加时间计数
count++;
//显示当前的时间计数
label->setText(QString::number(count));
} else {
QWidget::timerEvent(event);
}
}
上面两种方式都可以实现你的要求,相比之下QBasicTimer更适合在嵌入式设备上进行使用。
String[] s={"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
Systemoutprint("请输入数字(1-12):");
BufferedReader br=new BufferedReader(new InputStreamReader(Systemin));
String str=brreadLine();
int m=IntegerparseInt(str);
if (m<=0||m>=13)
{
msdn中对于COleDateTime写到
The DATE type is implemented as a floating-point value Days are measured from December 30, 1899, at midnight。
小数点后的数据表示是一天中的多久,比如025表示1/4天,也就是6小时。
这样就可以自己折算为从utc初始时间(1970-01-01T00:00:00000)经过的毫秒数,然后调用QDateTime::fromMSecsSinceEpoch(qint64 msecs)就可转化为QDateTime
以上就是关于QT 如何实现记录运行时间全部的内容,包括:QT 如何实现记录运行时间、QT编程 获取当前工作目录下的文件列表,并以Tree的形式显示在界面上、如何把float类型的日期通过Qt转化为日期格式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)