qtimer的触发函数怎么定义?

caofa0532 2014-08-10 04:15:13
代码如下:#include "mainwindow.h"
#include#includeint x=100;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
setupUi(this);
QTimer *timer_sys=new QTimer(this);
connect(timer_sys,SIGNAL(timeout()),this,SLOT(T_update()));
timer_sys->start(1000);
}

void MainWindow::T_update()
{
x--;
printf("%d",x);
}运行的时候总是提示: “T_update”: 不是“MainWindow”的成员, 请问应该如何修改?另外,该例子中定义了一个外部变量x,如果在MainWindow::T_update()函数里里面使用,没有问题;但是如果在MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)使用,会提示:“QWidget::x”: 函数调用缺少参数列表;请使用“&QWidget::x”创建指向成员的指针, 请问是怎么回事?
...全文
268 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
WeiXiao_365 2014-08-18
  • 打赏
  • 举报
回复
1.首先你这个槽函数定义了么?
2.如果定义了,你在头文件这个类声明的最开始加了Q_OBJECT没有?
如图:

3.外部变量不是你那样用的,你可以定义在该源文件对应的头文件中,或者新建一个头文件定义,然后引入这个头文件,就可以进行使用了。
天意可违 2014-08-18
  • 打赏
  • 举报
回复
头文件包含QTimer了么,另外槽函数在头文件里面定义了没
gysly1314 2014-08-10
  • 打赏
  • 举报
回复
在MainWindow.h文件里面,添加以下代码 Q_OBJECT public: MainWindow(QWidget *parent=0); public slots: void T_update(); private: int x;

16,175

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧