gpt4 book ai didi

c++ - 如何在 Qt C++ 中将变量从 MainWindow 传递到 SecondWindow

转载 作者:行者123 更新时间:2023-11-28 05:24:42 27 4
gpt4 key购买 nike

我的主窗体上有一个名为 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 在 public: renametargets.h 的部分。然后在 RenameTargets 中,我通过以下方式将标签设置为按钮文本:

RenameTargets::RenameTargets(QWidget *parent) :
QDialog(parent),
ui(new Ui::RenameTargets)
{
ui->setupUi(this);
ui->label_currentNameTarget1->setText(target1NameCurrent);

}

但标签 label_currentNameTarget1 中什么也没有出现。

我已经运行了一些 qDebug 东西,当 RenameTargets renametargets; 运行时,当我按下按钮时,它会运行 RenameTargets ui(new Ui::RenameTargets) 声明 renametargets.target1NameCurrent = ui->pushButton_Tar1ex->text(); 之前的部分。

我做错了什么?任何帮助,将不胜感激。

最佳答案

您在构造对象后设置了renametargets.target1NameCurrent 成员变量renametargets...这就是问题所在,因为您在构造函数中使用了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 >.

关于c++ - 如何在 Qt C++ 中将变量从 MainWindow 传递到 SecondWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40796707/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com