【问题标题】:How to have detachable tool windows in Qt如何在 Qt 中拥有可拆卸的工具窗口
【发布时间】:2013-04-26 10:03:28
【问题描述】:

我正在开发一个工具,它会有一些可变大小的窗口。我可以使用QSplitter 水平和垂直来实现这一点。请看附图。

现在,如何使这些单独的窗口可拆卸/最大化/关闭?如何在每个窗口的右上角添加十字标记,以便它们可以最大化或从那里分离?就像这个链接:--

http://vector.com/portal/medien/ecu_testing/tae/test_automation_editor.png

【问题讨论】:

    标签: qt qdockwidget


    【解决方案1】:

    您正在寻找QDockWidget 类:

    QDockWidget 类提供了一个可以停靠在 QMainWindow 或浮动为桌面上的顶级窗口。 QDockWidget 提供了dock widgets的概念,也称为工具 调色板或实用程序窗口。停靠窗口是放置的辅助窗口 在 QMainWindow 中中心小部件周围的停靠小部件区域中。

    查看this example

    【讨论】:

    • 谢谢 .. 是否可以使用 QT creator 做到这一点.. 实际上我无法 - 将 qdockwidget 组合到布局中,如使用 qt creator 所附图片所示?
    • 您可以使用设计器将每个子窗口创建为QDockWidget。但我认为您需要代码才能将它们添加到主窗口。要创建QDockWindowFile > New > Qt > Qt Designer From Class > Widgets/QDockWidget。然后在MainWindow 构造函数中:MyDockWidget* dock = new MyDockWidget(this); addDockWidget(Qt::RightDockWidgetArea, dock); 如示例所示。
    • 明白了,我会试试这个...最后一个...我们必须为每个窗口指定默认位置吗?
    • 我认为是的。当您拨打addDockWidget 时,您需要通过该区域。在您提出下一个问题之前,您可以通过编程方式将您的QDockWidget 派生小部件与dock->setFloating(false); 对接:)
    【解决方案2】:

    2021 年,KDQDockWidget 出现了,这是一个明显好得多的 Qt 对接框架,具有商业和开源许可证。

    该网站列出了以下优点:

    • 它提供了 QDockWidgets 不支持的高级停靠。
    • 布局引擎遵循最小/最大尺寸限制和一些尺寸政策。
    • 支持 PySide2 绑定。
    • 清理代码库。
    • 支持惰性分隔符调整大小。
    • 您可以使用鼠标重新排列选项卡。
    • 支持部分布局保存/恢复,仅影响选定的子集。
    • 允许双击标题栏最大化。
    • 允许双击分隔符平均分配。
    • 在选项卡上显示关闭按钮。
    • 允许您将停靠小部件设为不可关闭和/或不可停靠。
    • 在标题栏上提供一个可选的最大化按钮。
    • FloatingWindows 可以是实用程序窗口或完全原生窗口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 2014-10-23
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多