将 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 引用是没有用的,它不是一个沉重的对象。
我正在尝试通过 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 引用是没有用的,它不是一个沉重的对象。