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

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信号(可能是来自close事件的一个信号,可能来自上述connect的信号)?

最佳答案

无需创建新 Action ,只需从QDockWidget本身获取 Action 并使用它即可。它会为您处理状态:

http://qt-project.org/doc/qt-4.8/qdockwidget.html#toggleViewAction
QAction * QDockWidget::toggleViewAction () const
“返回一个可检查的操作,该操作可用于显示或关闭此停靠窗口小部件。

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

关于qt - 显示/隐藏QDockWidget?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1290194/

10-10 08:34