首页| 论坛| 消息

标题:【提问】QT的用户信号/槽程序该怎样写?
作者:背后的小刀
日期:2005-08-18 09:57
内容:

QT的信号/槽能独立使用么?我在程序中,不想使用QT的界面,只是想利用信号/槽来实现我的C++对象的通信。
我用的QT3。3。2,在VS。NET 2003中。程序一连接,就出错。
譬如,我建立了一个3Dview类,在其头文件中做如下声明:
#include
class C3D_View : public QObject
{
Q_OBJECT
public:
C3D_View ();
~C3D_View ();
public:
voiddisplay();
signals:
void dispEvent();
};
然后在类实现中,将display函数作如下定义:
... ...
void C3D_View::display()
{
emit dispEvent();
}
这个类在编译时,没问题,连接时,提示有一些虚函数连接失败。。。


#1 [XChinux 08-18 16:57]
看这个帖子:
http://www.qtcn.org/bbs/read.php?tid=1143
#2 [running 08-21 22:31]
写用户信号/槽程序时需注意几点:
1)、必须在类声明中用到Q_OBJECT;
2)、CONNECT中信号/槽要正确应用;
3)、槽的定义必须在CONNECT之前;
4)、不要胡乱用MOC,一般情况下MOC文件都已经自动生成和处理,只要前面几点注意一般都没问题了。
#3 [sky_hao 10-18 16:59]
为什么槽的定义一定要在CONNECT之前,如果我先在前面声明,后定义它不行吗?
#4 [XChinux 10-18 17:10]
connect是在函数里写的,而slots是在类定义里声明的.
就像每个函数在使用的时候都要看到他的原型一样.就这道理.

回复 发表
主题 版块