Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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
C++ 如何在QT Creator中传递对插槽的引用_C++_Qt - Fatal编程技术网

C++ 如何在QT Creator中传递对插槽的引用

C++ 如何在QT Creator中传递对插槽的引用,c++,qt,C++,Qt,我在项目中有两个表单:mainwindow.ui和mydialog.ui。 每个都有.hpp和cpp文件。 mainwindow.cpp文件具有QList对象。 我按下主窗口窗体上的按钮,出现模式mydialog窗体。 然后我按下我的对话框窗体上的按钮,并在单击()时运行 是否可以访问单击的()插槽上的中的QList对象 如果是,那么怎么做?我将向MyDialog添加新的exec()方法,whitch将QList作为如下参数获取:void MyDialog::execWithQList(QLis

我在项目中有两个表单:mainwindow.ui和mydialog.ui。
每个都有.hpp和cpp文件。
mainwindow.cpp文件具有
QList
对象。
我按下主窗口窗体上的按钮,出现模式mydialog窗体。
然后我按下我的对话框窗体上的按钮,并在单击()时运行

是否可以访问单击的()插槽上的
中的
QList
对象


如果是,那么怎么做?

我将向MyDialog添加新的exec()方法,whitch将QList作为如下参数获取:
void MyDialog::execWithQList(QList&QList){m_QList=QList;exec();}
还可以将它传递到MyDialog中。有几种方法可以做到这一点。问题是setList()是一个句柄,它在MyDialog::on_btnCreate_clicked()发生时运行。它不会从主窗口调用::在单击时打开(),将setList添加到主窗口,通过特殊成员setMainWindowReference将主窗口引用传递给MyDialog,然后在MyDialog中调用主窗口的setList::在单击时打开():m_mainWindowReference->setList(您的DialogList);“通过特殊成员将主窗口引用传递给MyDialog”如何实现?
 void MainWindow::on_btnCreate_clicked() {
     MyDialog dialog;
     dialog.setList(m_qList); // add member setList to your MyDialog class
     dialog.exec();
 }