我正在学习使用Qt框架编程。当我写一些代码有信号和插槽涉及时,事件似乎没有激发,信号和插槽似乎不起作用。真的让我生气了。你能否给我一些关于Qt信号和插槽的警告和警告?
广告位声明:
private slots:
void onFtpCmdFinish(int cmdId, bool error);
void onRealtimeFtpCmdsDone(bool error);
连接代码:
ftpHandle = new QFtp( this );
connect(ftpHandle, SIGNAL(commandFinished(int, bool)), this, SLOT(onFtpCmdFinish(int, bool)));
connect(ftpHandle, SIGNAL(done(bool)), this, SLOT(onRealtimeFtpCmdsDone(bool)));
提前谢谢!
答案 0 :(得分:3)
将来,如果您碰巧再次遇到Qt信号和插槽的问题,以下博客条目的内容可以变成真正的救生员(或者至少是一个非常好的起点)你的调查):
http://samdutton.wordpress.com/2008/10/03/debugging-signals-and-slots-in-qt/
它精心列出了20种调试/排除信号和插槽故障的方法;按照这个列表,很有可能你最终会发现什么是错的。
我希望有所帮助。
答案 1 :(得分:3)
您只能在运行时检测失败的connect()。
一些提示:
定义QT-FATAL-WARNINGS = 1将导致Qt在获得不匹配的连接时断言并退出。
或将每个连接包裹在:
bool ok = connect(......); QASSERT(ok);
答案 2 :(得分:2)
总是检查返回类型,如果它是真的那么CONNECT成功,否则有些错误..
答案 3 :(得分:1)
如果要编写多线程应用程序,请不要忘记第五个参数Qt :: ConnectionType