将 bool 传递给 qdialog

pass bool to qdialog

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

// forcequitDialog h 文件

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();
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 传递给您的构造函数。

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