QT 如何实现记录运行时间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT 如何实现记录运行时间相关的知识,希望对你有一定的参考价值。
我想要的是一个在QT中可以实现程序运行时间的函数,当前时间和动态时间运行我都有,就是这个不好实现,如何用一个Qlabel输出这个程序运行的时间,我刚开始的想法是动态运行的时间减去启动时的时间就好了,但是,没有实现,希望高手能解决,
用QTimer或者QBasicTimerQTimer主要就是为计时而设计,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;
构造函数有如下调用
timer.start(1000,this);
最后重新实现的timerEvent函数如下
void MainWindow::timerEvent(QTimerEvent *event)
static int count = 0;
if (event->timerId() == timer.timerId())
//增加时间计数
count++;
//显示当前的时间计数
label->setText(QString::number(count));
else
QWidget::timerEvent(event);
上面两种方式都可以实现你的要求,相比之下QBasicTimer更适合在嵌入式设备上进行使用。 参考技术A 如果精度在10ms以上可以直接用QTime类的start()函数和elapsed () 函数,然后再用QTimer更新label就可以了,用repaint()更新比用update()更新要更实时些。
使用 Qt 安装程序框架脚本记录控制台输出
【中文标题】使用 Qt 安装程序框架脚本记录控制台输出【英文标题】:Logging console output using Qt Installer Framework scripting 【发布时间】:2020-01-07 01:29:19 【问题描述】:我通过组件/控制器脚本向我的安装程序添加了一些 console.log("xxxxxx")。
即。
function Controller()
console.log("OS: " + systemInfo.productType);
如何在安装程序运行期间查看控制台日志?
【问题讨论】:
【参考方案1】:不确定您是否可以在安装过程中看到日志。但在“成功”安装后,TargetDir
将包含一个名为 InstallationLog.txt
的文件,其中包含安装过程中的所有 console.log
行。
编辑:要实时查看它,请像 @CherryDT 在他的评论中指出的那样:从命令行运行安装程序并提供 -v
参数(fx my_installer.exe -v
)。
【讨论】:
从终端使用-v
运行安装程序时应该可以“实时”看到日志。以上是关于QT 如何实现记录运行时间的主要内容,如果未能解决你的问题,请参考以下文章