将布尔传递给 Qdialog

pass bool to qdialog

本文关键字:Qdialog 布尔传      更新时间:2023-10-16

我正在尝试通过setter方法将布尔值传递给qdialog;代码编译,但值似乎没有接受对话框。我只包含了相关的代码,我希望它是可读的。我在这里错过了什么?

强制退出对话框 h 文件

public:
setAction(const bool &takeaction);
private:
     bool m_action;

强制退出对话框.cpp

  forcequitDialog::forcequitDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::forcequitDialog)
{
    ui->setupUi(this);  
       if (m_action)
          ui->title->setText("Start Application");
        else
       ui->title->setText("Stop Application");
forcequitDialog::~forcequitDialog()
{
    delete ui;
}

  void forcequitDialog::setAction(const bool &takeaction)
    {
        m_action = takeaction;

    }

主窗口.cpp

 forcequitDialog dialog;
    dialog.setAction(true);  // pass value to dialog
    dialog.exec();
forcequitDialog dialog; // constructor called here

您的台词:

if (m_action)  // doesn't work
    ui->title->setText("Start Application");
else
    ui->title->setText("Stop Application");

在您调用以下信息之前执行:

dialog.setAction(true);  // pass value to dialog

将这些指令移动到 setAction(( 函数中,或者takeaction传递给构造函数。

顺便说一句:对布尔值使用 const 引用是没有用的,它不是一个重物。