如何在Qt C++中将变量从MainWindow传递到SecondWindow
How to pass variable from MainWindow to SecondWindow in Qt C++
我的主窗体上有一个名为pushButton_Tar1ex
的按钮,上面有一些文本。我的主窗体上还有另一个名为pushButton_RenameTargets
的按钮。
当我推送pushButton_RenameTargets
时,执行以下代码:
void MainWindow::on_pushButton_RenameTargets_clicked()
{
RenameTargets renametargets;
renametargets.target1NameCurrent = ui->pushButton_Tar1ex->text();
renametargets.setModal(true);
renametargets.exec();
}
所以我的第二个窗口被称为RenameTargets
函数中的第一行代码创建一个对象renametargets
。然后我设置renametargets.target1NameCurrent = ui->pushButton_Tar1ex->text();
哪个target1NameCurrent
是公开的:renametargets.h的一部分。然后在重命名目标中,我通过以下方式将标签设置为按钮文本:
RenameTargets::RenameTargets(QWidget *parent) :
QDialog(parent),
ui(new Ui::RenameTargets)
{
ui->setupUi(this);
ui->label_currentNameTarget1->setText(target1NameCurrent);
}
然而,标签中没有出现任何内容label_currentNameTarget1
.
我已经运行了一些 qDebug 的东西,发生的事情是当我按下按钮时运行RenameTargets renametargets;
它会在声明renametargets.target1NameCurrent = ui->pushButton_Tar1ex->text();
之前通过RenameTargets ui(new Ui::RenameTargets)
部分。
我做错了什么? 任何帮助将不胜感激。
您在构造对象renametargets
后设置renametargets.target1NameCurrent
成员变量...这就是问题所在,因为您在构造函数中使用target1NameCurrent
来设置标签。
一种解决方案是通过构造函数传递target1NameCurrent
。
void MainWindow::on_pushButton_RenameTargets_clicked()
{
RenameTargets renametargets(this, ui->pushButton_Tar1ex->text());
renametargets.setModal(true);
renametargets.exec();
}
重命名目标.cpp
RenameTargets::RenameTargets(QWidget *parent, const QString & target1NameCurrent):
QDialog(parent),
ui(new Ui::RenameTargets),
target1NameCurrent(target1NameCurrent)
{
ui->setupUi(this);
ui->label_currentNameTarget1->setText(target1NameCurrent);
}
重命名目标.h
class RenameTargets{
public:
RenameTargets(QWidget *parent, const QString & target1NameCurrent);
};
此外,您可以在构造renametargets
并初始化renametargets.target1NameCurrent
后,在RenameTargets
的另一个函数中初始化label_currentNameTarget1
。
- 在Visual Studio中单实例Qt应用程序版本5.11.1中,在所有其他窗口的顶部打开Qt MainWindow
- 如何通过 Qdialog 中的 qtablewidget 填充作为 MainWindow 成员的 qvector
- QT 库 QObject::connect: 无法连接 (null)::done() 到 MainWindow::upd
- Qt从另一个类修改MainWindow
- 如何将Singleton类信号连接到MainWindow类插槽或方法
- MainWindow的Worker线程的QT更新变量
- QT-从QDialog(MainWindow满载之前)关闭程序
- Qt QFrame StyleSheet 在 MainWindow 中不起作用
- 如何将MainWindow中的所有小部件递归禁用
- 如何将QVideOwidget添加到第二个MainWindow
- 如何从QT中的Qthread管理MainWindow
- QT将MainWindow拆分为四个小部件
- 为什么MainWindow的成员功能可以在QT中调用Qlabel的成员
- 如何从另一个Qt Widget表单类调用MainWindow类
- Qt:"closeEvent"的外线定义与"MainWindow"中的任何声明都不匹配
- 从 MainWindow Qt 之外的另一个函数访问 MinWindow 函数
- 更改如何从另一个窗口从Mainwindow接收信号
- 当MainWindow隐藏时,QT应用程序会自动退出
- 类 'MainWindow' 中未声明任何成员函数
- QT GUI最简单的方法可以从另一堂课访问MainWindow