8

ドックウィジェットがあります。ウィジェットを表示/非表示にするための「ウィンドウ」メニューを追加したいと思います。で行うのに十分簡単

showPropWinAct = new QAction(tr("&Properties"), this);
showPropWinAct->setStatusTip(tr("Show properties window"));
showPropWinAct->setCheckable(true);
connect(showPropWinAct, SIGNAL(toggled(bool)), propertiesWindow, SLOT(setVisible(bool)));

問題は、ユーザーがウィジェットの[x]をクリックしても、showPropWinActが切り替えられないことです。2番目のsetVisible信号(おそらくcloseイベントから1つ、connect上記から1つ)を起動せずに、このイベントをリッスンし、アクションを適切に切り替えるにはどうすればよいですか?

4

1 に答える 1

31

新しいアクションを作成する代わりに、QDockWidget自体からアクションを取得して使用するだけです。それはあなたのために状態の世話をします:

http://qt-project.org/doc/qt-4.8/qdockwidget.html#toggleViewAction

QAction * QDockWidget::toggleViewAction () const

"このドックウィジェットを表示または閉じるために使用できるチェック可能なアクションを返します。

アクションのテキストは、ドックウィジェットのウィンドウタイトルに設定されます。「」

于 2009-08-17T20:25:07.727 に答える