Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 将QDialog连接到QMainWindow_Qt_Qdialog - Fatal编程技术网

Qt 将QDialog连接到QMainWindow

Qt 将QDialog连接到QMainWindow,qt,qdialog,Qt,Qdialog,我已经使用QT设计器创建了一个QMainWindow。我有带信号插槽的组件。我已经制作了一些非gui组件QObject,因此我还可以使用信号/插槽机制 我的下一步是添加一个无模式对话框。我不希望对话框阻止主窗口。我希望对话框保持活动状态(在用户可见的地方或在后台),直到用户单击关闭它。我用designer创建了一个无模式QDialog对象。根据需要弹出对话框。它还将上一个会话的信息保存在文本框中。它只是一个文件名 但是,当我开始将QDialog连接到QMainWindow时,信号/插槽机制似乎不

我已经使用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_对象
  • 您记得在添加新的
    Q\u对象
    类后运行qmake
  • qDebug
    打印/断点添加到发出
    notifyStartScript
    的位置
  • 使用
    qDebug
    打印或断点将其他内容连接到
    startScripting
    插槽,以验证是否调用了它
  • 如果您在源代码生成中使用过(比如在源代码目录下从命令行运行qmake和make),然后在单独的生成目录中切换到“影子生成”,请确保源代码目录中没有生成的.cpp、.h和.o文件

首先查看连接是否成功:检查应用程序控制台输出是否存在连接失败的警告,然后打印connect调用的返回值

然后做一些事情:

  • 在scriptdialog.h中有
    Q_对象
  • 您记得在添加新的
    Q\u对象
    类后运行qmake
  • qDebug
    打印/断点添加到发出
    notifyStartScript
    的位置
  • 使用
    qDebug
    打印或断点将其他内容连接到
    startScripting
    插槽,以验证是否调用了它
  • 如果您在源代码生成中使用过(比如在源代码目录下从命令行运行qmake和make),然后在单独的生成目录中切换到“影子生成”,请确保源代码目录中没有生成的.cpp、.h和.o文件