题
我创建了一个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::WindowSystemMenuHint
在f
.
也可以看看 QWidget::setWindowFlags()
.
如果您只想禁用该按钮,您可以调用 setEnabled(bool)
, ,但我怀疑这就是所问的问题。
如果您想删除该按钮,请参见下文:
QDialog
旨在使用 QDialogButtonBox
作为对话框中显示的按钮。您可以使用以下可用的访问器 QDialogButtonBox 为了禁用您不需要的按钮(以及启用其他按钮)。
例如(来自上面链接的文档):
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);
如果您不知道按钮框,我猜设计师会自动为您添加它,并且它应该有一个易于访问的名称。您还应该可以检查一些属性(复选框),以控制默认情况下可以访问哪些按钮。
不隶属于 StackOverflow