我有一个停靠小部件,现在我想添加一个“窗口”菜单来显示/隐藏小部件。
很容易做到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
)?
答案 0 :(得分:24)
不是创建新动作,只需从QDockWidget本身获取动作并使用它。它将照顾你的状态:
http://qt-project.org/doc/qt-4.8/qdockwidget.html#toggleViewAction
QAction * QDockWidget::toggleViewAction () const
“返回可用于显示或关闭此停靠窗口小部件的可检查操作。
操作的文本设置为停靠窗口小部件的窗口标题。 “