我正在尝试制作一个测验管理系统,基本上在哪个程序给用户一些问题,并且每个问题必须在一定的时间限制内回答。让我们说每个问题1分钟。
时间必须连续显示,当时间超过一分钟时,用户可以回答下一个问题。
我正在使用QT中的GUI。
问题是 如何制作计时器然后在此程序中使用它?
答案 0 :(得分:3)
您应该使用QTimer
类。
将超时信号连接到您将处理数据的插槽。
在构造函数中:
QTimer *timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(echo()));
timer->start(990);
槽。这只是一个例子,你应该提供你的具体代码。
void MainWindow::echo()
{
intervalSec = intervalSec - 1;
if (intervalSec == -1)
{
intervalSec = 60 - 1;
//time is up
}
int min,sec;
min = intervalSec/60;
sec = intervalSec%60;
ui->lcdNumber->display(QString::number(min)+":"+QString::number(sec));
}
您可以使用QLabel
来显示时间或使用更漂亮的小部件QLCDNumber
,如我在示例中所示。您可以轻松实现下一个美丽的结果(如下所示):
不要以为我的计算时间是最好的。我使用了变量,但你可以使用特殊的类QTime
。