Qt 将QDialog连接到QMainWindow
我已经使用QT设计器创建了一个QMainWindow。我有带信号插槽的组件。我已经制作了一些非gui组件QObject,因此我还可以使用信号/插槽机制 我的下一步是添加一个无模式对话框。我不希望对话框阻止主窗口。我希望对话框保持活动状态(在用户可见的地方或在后台),直到用户单击关闭它。我用designer创建了一个无模式QDialog对象。根据需要弹出对话框。它还将上一个会话的信息保存在文本框中。它只是一个文件名 但是,当我开始将QDialog连接到QMainWindow时,信号/插槽机制似乎不起作用 这是我的代码:Qt 将QDialog连接到QMainWindow,qt,qdialog,Qt,Qdialog,我已经使用QT设计器创建了一个QMainWindow。我有带信号插槽的组件。我已经制作了一些非gui组件QObject,因此我还可以使用信号/插槽机制 我的下一步是添加一个无模式对话框。我不希望对话框阻止主窗口。我希望对话框保持活动状态(在用户可见的地方或在后台),直到用户单击关闭它。我用designer创建了一个无模式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)));
也许我找错人了。有没有更好的方法来创建这样的弹出窗口?首先查看连接是否成功:检查应用程序控制台输出中有关连接失败的警告,然后打印连接调用的返回值 然后做一些事情:
- 在scriptdialog.h中有
宏Q_对象
- 您记得在添加新的
类后运行qmakeQ\u对象
- 将
打印/断点添加到发出qDebug
的位置notifyStartScript
- 使用
打印或断点将其他内容连接到qDebug
插槽,以验证是否调用了它startScripting
- 如果您在源代码生成中使用过(比如在源代码目录下从命令行运行qmake和make),然后在单独的生成目录中切换到“影子生成”,请确保源代码目录中没有生成的.cpp、.h和.o文件
- 在scriptdialog.h中有
宏Q_对象
- 您记得在添加新的
类后运行qmakeQ\u对象
- 将
打印/断点添加到发出qDebug
的位置notifyStartScript
- 使用
打印或断点将其他内容连接到qDebug
插槽,以验证是否调用了它startScripting
- 如果您在源代码生成中使用过(比如在源代码目录下从命令行运行qmake和make),然后在单独的生成目录中切换到“影子生成”,请确保源代码目录中没有生成的.cpp、.h和.o文件