【发布时间】:2023-07-12 21:57:02
【问题描述】:
我正在尝试通过 setter 方法将 bool 传递给 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();
【问题讨论】:
-
注释“不起作用”的代码在哪里?确定不在全球范围内?
-
@krzaq 我已经添加了代码。
-
粘贴后的代码看起来仍然有些奇怪,但您似乎在构造函数中使用了
m_action,然后又调用了setAction(true)。 -
@ken-y-n 我的 mainwindow.cpp 通过 dialog.setAction(true);然后调用 dialog.exec() 我不明白有什么问题。
-
@Alan,请不要编辑问题来纠正我们指出的问题,因为这会使以后的读者感到困惑并使 cmets 和答案变得多余。