C++ 将布尔传递给qdialog

C++ 将布尔传递给qdialog,c++,qt,setter,qdialog,C++,Qt,Setter,Qdialog,我试图通过setter方法将bool传递给qdialog;代码可以编译,但该值似乎不在对话框中。我只包含了相关的代码,希望可读。我错过了什么 //forcequith文件 public: setAction(const bool &takeaction); private: bool m_action; //forcequitDialog.cpp forcequitDialog::forcequitDialog(QWidget *parent) : QDialo

我试图通过setter方法将bool传递给qdialog;代码可以编译,但该值似乎不在对话框中。我只包含了相关的代码,希望可读。我错过了什么

//forcequith文件

public:
setAction(const bool &takeaction);

private:
     bool m_action;
//forcequitDialog.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;



    }
//MainWindow.cpp

 forcequitDialog dialog;

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

    dialog.exec();
你的台词:

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
传递给构造函数


顺便说一句:对bool使用const引用是无用的,它不是一个沉重的对象。

注释为“不工作”的代码在哪里?肯定不在全局范围内?@krzaq我添加了代码。粘贴时代码看起来仍然有点不稳定,但您似乎在构造函数中使用
m_action
,然后调用
setAction(true)
。@ken-y-n my main window.cpp通过dialog.setAction(true)传递值;然后调用dialog.exec()我不明白什么是不可靠的。@Alan,请不要编辑问题来纠正我们指出的问题,因为这会使以后的读者感到困惑,并使评论和回答变得多余。
dialog.setAction(true);  // pass value to dialog