QT - Deaktivieren von Qdialogs "?" Taste
Frage
Ich erstelle eine Instanz von Qdialog und links von 'x' (schließen) Taste, die ich auch '?' Taste. Wie kann ich das deaktivieren '?' ?
Lösung
Ändern Sie die Fensterflags, zum Beispiel im Konstruktor:
this->setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);
Andere Tipps
Aus der QT 4.6 QDIALOG -Dokumentation:
QDialog::QDialog ( QWidget * parent = 0, Qt::WindowFlags f = 0 )
Konstruiert einen Dialog mit Eltern
parent
.Ein Dialog ist immer ein Widget der obersten Ebene, aber wenn er über einen übergeordneten Ort verfügt, ist der Standardort auf dem übergeordneten Übergang zentriert. Es wird auch den Taskleisteneintrag des Elternteils teilen.
Die Widget -Flaggen
f
werden an die weitergegebenQWidget
Konstrukteur. Wenn zum Beispiel, Sie wollen keine ** Was ist das Schaltfläche in der Titelleiste des Dialogfelds **, passierenQt::WindowTitleHint | Qt::WindowSystemMenuHint
inf
.
Siehe auch QWidget::setWindowFlags()
.
Wenn Sie nur die Schaltfläche deaktivieren möchten, können Sie anrufen setEnabled(bool)
, aber ich bezweifle, dass es das ist, was gefragt wird.
Wenn Sie diese Taste entfernen möchten, siehe unten:
QDialog
soll a verwenden QDialogButtonBox
als die Schaltflächen, die im Dialog angezeigt werden. Sie können Zubehör verwenden, die in verfügbaren verfügbaren verfügbar sind QDIALOGBUTTONBOX Um die Knöpfe zu deaktivieren, die Sie nicht wollen (und andere aktivieren).
Zum Beispiel (aus der oben verlinkten Dokumentation):
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);
Wenn Sie sich des Schaltflächenfelds nicht bewusst sind, würde ich vermuten, dass Designer es automatisch für Sie hinzugefügt hat und es einen Namen haben sollte, der ihn zugänglich macht. Es sollte auch Eigenschaften (Kontrollkästchen) geben, die Sie überprüfen können, um zu steuern, welche Schaltflächen standardmäßig zugänglich sind.