我使用QT Designer创建了一个QMainWindow。我有组件有信号插槽。我已经制作了一些非gui组件QObjects,所以我也可以使用信号/插槽机制。
我的下一步是添加一个无模式对话框。我不希望对话框阻止主窗口。我希望对话框保持活动状态(用户可见或在后台可见),直到用户单击关闭它。我用设计师创建了一个无模式的QDialog对象。根据需要弹出对话框。它还保留文本框中前一个会话的信息。这只是一个文件名。
然而,当我开始将QDialog连接到QMainWindow时,信号/插槽机制似乎不起作用。
这是我的代码:
//In the .h file declared as member of the QMainWindow
ScriptDialog *theScriptDialog;
//In the .cpp file, the constructor of QMainWindow
theScriptDialog = new ScriptDialog(this);
QObject::connect(theScriptDialog, SIGNAL(notifyStartScript(QString)), SLOT (startScripting(QString)));
也许我正在咆哮错误的树。有没有更好的方法来创建这样的弹出窗口?
答案 0 :(得分:0)
首先查看连接是否成功:检查应用程序控制台输出是否有关于连接失败的警告,然后打印连接调用的返回值。
然后有些事要做:
Q_OBJECT
宏Q_OBJECT
类qDebug
打印/断点添加到notifyStartScript
发出的位置startScripting
广告位,并使用qDebug
打印或断点,以验证其是否被调用