将QDialog连接到QMainWindow
我使用QT Designer创建了一个QMainWindow。 我有具有信号插槽的组件。 我制作了一些非gui组件QObject,所以我也可以使用信号/插槽机制。
我的下一步是添加一个无模式对话框。 我不想让对话框阻止主窗口。 我希望对话框保持活动状态(用户可以看到或在后台显示),直到用户单击关闭它。 我用设计器创建了一个无模式的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)));
也许我在吠叫错误的树。 有没有更好的方法来创建这样的弹出式窗口?
首先查看连接是否成功:检查应用程序控制台输出是否有连接失败的警告,然后打印连接调用的返回值。
然后做一些事情:
Q_OBJECT
中有Q_OBJECT
宏 Q_OBJECT
类后运行qmake qDebug
print / breakpoint添加到notifyStartScript
发出的位置 startScripting
插槽,用qDebug
打印或断点来验证它被调用 上一篇: Connecting QDialog to QMainWindow
下一篇: Qt: Update widgets that are hidden before they are then shown?