C++ 将布尔传递给qdialog
我试图通过setter方法将bool传递给qdialog;代码可以编译,但该值似乎不在对话框中。我只包含了相关的代码,希望可读。我错过了什么 //forcequith文件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
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