显示/隐藏QDockWidget?

时间:2009-08-17 20:20:52

标签: qt visibility

我有一个停靠小部件,现在我想添加一个“窗口”菜单来显示/隐藏小部件。

很容易做到
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无法切换。我怎样才能听取这个事件,并正确地切换动作,而不会触发第二个setVisible信号(一个来自关闭事件,一个来自上面的connect)?

1 个答案:

答案 0 :(得分:24)

不是创建新动作,只需从QDockWidget本身获取动作并使用它。它将照顾你的状态:

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

QAction * QDockWidget::toggleViewAction () const

“返回可用于显示或关闭此停靠窗口小部件的可检查操作。

操作的文本设置为停靠窗口小部件的窗口标题。 “