22

QDialog のインスタンスを作成し、'x' (閉じる) ボタンの左側に '?' もあります。ボタン。その「?」を無効にするにはどうすればよいですか? ?

4

4 に答える 4

44

たとえばコンストラクタでウィンドウフラグを変更します。

this->setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);
于 2010-06-09T16:38:09.690 に答える
5

Qt 4.6 QDialog ドキュメントから:

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

親でダイアログを構築しparentます。

ダイアログは常に最上位のウィジェットですが、親がある場合、そのデフォルトの位置は親の上に中央揃えされます。また、親のタスクバー エントリも共有します。

ウィジェット フラグfQWidgetコンストラクタに渡されます。たとえば、 **ダイアログのタイトル バーに [ What's This] ボタンを配置したくない場合はQt::WindowTitleHint | Qt::WindowSystemMenuHint、を渡しfます。

も参照してくださいQWidget::setWindowFlags()

于 2010-06-03T17:47:02.183 に答える
0

ボタンを無効にしたいだけの場合は、 を呼び出すことができますがsetEnabled(bool)、それが求められているとは思えません。

そのボタンを削除する場合は、以下を参照してください。

QDialogQDialogButtonBoxダイアログに表示されるボタンとしてを使用することを意図しています。不要なボタンを無効にする (および他のボタンを有効にする) ために、 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);

ボタン ボックスを認識していない場合は、デザイナーが自動的に追加したので、アクセスできる名前が付けられているはずです。デフォルトでどのボタンにアクセスできるかを制御するためにチェックできるプロパティ (チェックボックス) も必要です。

于 2010-06-03T17:49:36.717 に答える