我创建了一个qdialog的实例,在“ x”(clos)按钮的左侧我也有'?”按钮。我怎么能禁用“?” ?

有帮助吗?

解决方案

更改窗口标志,例如在构造函数中:

this->setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);

其他提示

从QT 4.6 QDialog文档:

QDialog::QDialog ( QWidget * parent  = 0, Qt::WindowFlags  f = 0 )

与父母构建对话框 parent.

对话框始终是顶级小部件,但是如果它具有父级,则其默认位置的中心位于父母的顶部。它还将共享父母的任务栏条目。

小部件标志 f 被传递给 QWidget 构造函数。例如,如果 你不想要一个**这是什么 对话框的标题栏中的按钮**,通过 Qt::WindowTitleHint | Qt::WindowSystemMenuHintf.

也可以看看 QWidget::setWindowFlags().

如果您只想禁用该按钮,您可以调用 setEnabled(bool), ,但我怀疑这就是所问的问题。

如果您想删除该按钮,请参见下文:

QDialog 旨在使用 QDialogButtonBox 作为对话框中显示的按钮。您可以使用以下可用的访问器 QDialogBu​​ttonBox 为了禁用您不需要的按钮(以及启用其他按钮)。

例如(来自上面链接的文档):

findButton = new QPushButton(tr("&Find"));
findButton->setDefault(true);

moreButton = new QPushButton(tr("&More"));
moreButton->setCheckable(true);
moreButton->setAutoDefault(false);

buttonBox = new QDialogButtonBox(Qt::Vertical);
buttonBox->addButton(findButton, QDialogButtonBox::ActionRole);
buttonBox->addButton(moreButton, QDialogButtonBox::ActionRole);

如果您不知道按钮框,我猜设计师会自动为您添加它,并且它应该有一个易于访问的名称。您还应该可以检查一些属性(复选框),以控制默认情况下可以访问哪些按钮。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top