一个关于Qt定时器的问题

还有一个关于Qt的问题,关于多定时器的,举个例子,有两个单选框,选中第一个代表1000ms,选中第二个代表500ms,QTimer*t=newQTimer;connect... 还有一个关于Qt的问题,关于多定时器的,举个例子,有两个单选框,选中第一个代表1000ms,选中第二个代表500ms,QTimer* t = new QTimer;connect(t,signal(timeout()),this,slot(slotadd()));t->start(500);

slotadd()槽函数是用来对一个变量进行递增操作的,即每次都+1,然后将这个变量显示在一个lineEdit框上;开始的时候是每500ms调用一次槽函数,现在我想选中1000ms单选框,使得每1000ms调用槽函数一次,请问实现办法是什么?我试过用一个定时器实现,就是用t->setInterval(1000)来改变定时器的值,但没有成功,然后又用两个定时器来做,即关掉一个定时器,打开另一个定时器,但也没有效果,不知道是不是我某些函数用得不对,还是根本想法就错了。
展开
 我来答
十丽证R
2013-07-26 · TA获得超过151个赞
知道答主
回答量:84
采纳率:0%
帮助的人:84.7万
展开全部
只要一个定时器,思路没问题,代码如下,要工程留邮箱。
/////////////////////mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimer>
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
QTimer *timer;
int counter;
private slots:
void slotadd();

void on_radio500_clicked();

void on_radio1000_clicked();

private:
Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

///////////////////mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
counter = 0;
timer = new QTimer();
timer->setInterval(500);
connect(timer,SIGNAL(timeout()),this,SLOT(slotadd()));
timer->start();
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::slotadd()
{
counter++;
if(counter >= 10000) counter = 0;
QString s;
s.sprintf("%d",counter);
ui->label->setText(s);
}

void MainWindow::on_radio500_clicked()
{
timer->setInterval(500);
}

void MainWindow::on_radio1000_clicked()
{
timer->setInterval(1000);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式