質問

Qdialogのインスタンスを作成し、「x」(閉じる)ボタンの左側に「?」も作成します。ボタン。どうすればそれを無効にすることができますか? ?

役に立ちましたか?

解決

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

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 ダイアログに表示されるボタンとして。利用可能なアクセサを使用できます 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);

ボタンボックスボックスに気付いていない場合は、デザイナーが自動的に追加し、アクセスできる名前が付いていると思います。また、デフォルトでアクセス可能なボタンを制御するためにチェックインできるプロパティ(チェックボックス)も存在する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top