将变量传递给提升的 QWidget
Passing variable to promoted QWidget
我有两个 classes:
-主窗口
-MyWidget 在 MainWindow.ui 中使用 QT Creator 的设计选项卡进行升级。
class .ui 都是在设计选项卡中设计的。
我尝试将变量从 MainWindow 传递给 MyWidget,但没有成功。编译器没有给出任何错误,但变量没有传递。有什么办法吗?只要我不将 MainWindow 导入它或将 MyWidget 导入 MainWindow,MyWidget 就可以正常工作。导入后我无法通过代码控制 MyWidget 的内容。有什么建议吗?
编辑:制作了一个小示例并将代码添加到 pastebin,因此 post 不会变得臃肿。
另一个链接在评论中
您的 class MainWindow
不需要 MyWidget
属性。 MyWidget
对象实际上是由Ui::MainWindow
对象创建的。
因此,要访问您的 MyWidget
对象(作为 MainWindow
小部件的一部分显示在屏幕上的对象),请使用 ui->widget
(因为小部件是您在Qt Designer <widget class="MyWidget" name="widget" native="true"/>
),而不是 mw
.
修改 mw
没有意义,因为 MyWidget
的这个实例不用于 GUI 显示。
然后你必须改变:
connect(this, SIGNAL(text(QString, QString)),&mw, SLOT(addText(QString,QString)));
进入:
connect(this, SIGNAL(text(QString, QString)),ui->widget, SLOT(addText(QString,QString)));
注意:如果MyWidget
class需要在构造时传递参数,您可以从.ui文件中删除widget
实例化并使用本地创建它mw
属性的 MainWindow
class 和你一样。但是,然后,要在屏幕上显示此实例,您必须将其添加到 MainWindow
的布局中,例如(例如):ui->horizontalLayout->addWidget( &mw );
我有两个 classes:
-主窗口
-MyWidget 在 MainWindow.ui 中使用 QT Creator 的设计选项卡进行升级。 class .ui 都是在设计选项卡中设计的。
我尝试将变量从 MainWindow 传递给 MyWidget,但没有成功。编译器没有给出任何错误,但变量没有传递。有什么办法吗?只要我不将 MainWindow 导入它或将 MyWidget 导入 MainWindow,MyWidget 就可以正常工作。导入后我无法通过代码控制 MyWidget 的内容。有什么建议吗?
编辑:制作了一个小示例并将代码添加到 pastebin,因此 post 不会变得臃肿。
另一个链接在评论中
您的 class MainWindow
不需要 MyWidget
属性。 MyWidget
对象实际上是由Ui::MainWindow
对象创建的。
因此,要访问您的 MyWidget
对象(作为 MainWindow
小部件的一部分显示在屏幕上的对象),请使用 ui->widget
(因为小部件是您在Qt Designer <widget class="MyWidget" name="widget" native="true"/>
),而不是 mw
.
修改 mw
没有意义,因为 MyWidget
的这个实例不用于 GUI 显示。
然后你必须改变:
connect(this, SIGNAL(text(QString, QString)),&mw, SLOT(addText(QString,QString)));
进入:
connect(this, SIGNAL(text(QString, QString)),ui->widget, SLOT(addText(QString,QString)));
注意:如果MyWidget
class需要在构造时传递参数,您可以从.ui文件中删除widget
实例化并使用本地创建它mw
属性的 MainWindow
class 和你一样。但是,然后,要在屏幕上显示此实例,您必须将其添加到 MainWindow
的布局中,例如(例如):ui->horizontalLayout->addWidget( &mw );