QDialog のインスタンスを作成し、'x' (閉じる) ボタンの左側に '?' もあります。ボタン。その「?」を無効にするにはどうすればよいですか? ?
4 に答える
たとえばコンストラクタでウィンドウフラグを変更します。
this->setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);
Qt 4.6 QDialog ドキュメントから:
QDialog::QDialog ( QWidget * parent = 0, Qt::WindowFlags f = 0 )
親でダイアログを構築し
parent
ます。ダイアログは常に最上位のウィジェットですが、親がある場合、そのデフォルトの位置は親の上に中央揃えされます。また、親のタスクバー エントリも共有します。
ウィジェット フラグ
f
はQWidget
コンストラクタに渡されます。たとえば、 **ダイアログのタイトル バーに [ What's This] ボタンを配置したくない場合は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);
ボタン ボックスを認識していない場合は、デザイナーが自動的に追加したので、アクセスできる名前が付けられているはずです。デフォルトでどのボタンにアクセスできるかを制御するためにチェックできるプロパティ (チェックボックス) も必要です。