代码之家  ›  专栏  ›  技术社区  ›  mpen

显示/隐藏QDockWidget?

  •  6
  • mpen  · 技术社区  · 16 年前

    我有一个Dock小部件,现在我想添加一个“窗口”菜单来显示/隐藏小部件。很容易处理

    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 上面)?

    1 回复  |  直到 11 年前
        1
  •  24
  •   mavroprovato    11 年前

    不要创建新的操作,只需从QDockWidget本身获取操作并使用它。它将为您处理国家事务:

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

    QAction * QDockWidget::toggleViewAction () const

    “返回一个可检查的操作,该操作可用于显示或关闭此停靠小部件。

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