读书人

触发定时器的小疑点很简单

发布时间: 2013-02-24 17:58:56 作者: rapoo

触发定时器的小问题,很简单


Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);

QTimer *t1 = new QTimer(this);

connect(t1, SIGNAL(timeout()), this, SLOT(TimerUpData()));

//t1->start(100); 放在这里就正常
}


void Widget::on_pushButton_clicked()
{

Widget::t1->start();//放在这里,程序可以运行,但是单击按钮会卡死退出

}


为什么? 谢谢
[解决办法]
引用:
引用:QTimer *t1应该写在头文件里,声明为类变量。
否则离开构造函数,t1就不存在了,实际上timer还在,但是t1没有意义了。

C/C++ code?123private: Ui::Widget *ui; QTimer *t1;
这样算不算?

当然算,但是一定要把构造函数里的QTimer *t1 = new...改为 t1 = new...

读书人网 >QT开发

热点推荐