问题标签 [qdockwidget]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QDockWidget -- 调整窗口大小时尽可能靠近小部件
我有一个包含几个 QGroupBoxes 的 QDockWidget。(QGroupBoxes 的内容在 mousePressEvent 时显示/隐藏。)我正在寻找一种方法来保持 QGroupBoxes 尽可能紧密地放置在一起,最好是在 DockWidget 的顶部。它应该看起来像这样:
但是,当增加 DockWidget 的大小时,GroupBox 会分开:
...我知道,这在大多数情况下都非常方便。但是有没有办法覆盖这种行为并获得一个漂亮的、可扩展的、类似列表的 Widget 分组?
DockWidget 包含一个 QGroupBox;QGroupBoxes 'Foo'、'Bar' 和 'Baz' 被添加到该框的 QVBoxLayout。
python - pyqt:在maya中调整qdockwidget的大小
我为 Maya 制作了一个工具。我在 QMainWindow 中使用 QDockWidget 来进行整个 UI 组合。如你我所知,我可以“saveState”和“restoreState”来保留QToolBar、QDockWidget等。
我不知道原因,但在 Maya 中我无法“restoreState”实际状态。它可以恢复QToolBar、QDockWidget的所有状态,除了QDockWidget的大小。所以我想尝试以编程方式调整 QDockWidget 的大小。有没有办法做到这一点?
qt - 正确获取 QDockWidget 布局
我大量使用停靠小部件让用户按照她想要的方式安排工具。我的一些停靠小部件包含静态控件(FS,固定垂直尺寸),其他描绘图像,越大越好(ES,扩展垂直尺寸)。
我面临的问题是我无法获得让我这样做的大小提示配置:
- 使可变大小的dockwidgets尽可能大
- 让所有的dockwidgets标签彼此没有错误的行为
对于 1.,我可以将所有 FS 的内容小部件的垂直策略设置为“固定”。这将强制容器将所有可用空间用于可变大小的小部件。但是,一旦 ES 小部件与 FS 小部件一起被标记,而 FS 小部件未显示,我充其量是顽固的行为(用户无法调整大小)和最坏的错误行为(调整大小时,会发生绘图错误,实际大小没有变化)。
对于 2.,我可以将所有垂直策略设置为“首选”(FS)或“扩展”(ES)。这应该优先考虑 ES,但事实并非如此。我还尝试过使用 Vertical Stretch 进行游戏(虽然它在不涉及 DockWidgets 的其他场景中很有帮助)。
我遇到了这样一种情况:默认情况下,应用程序会浪费空间,并且每当窗口大小/布局发生变化时,用户都必须对 dockwidget 大小进行多次调整。这是非常乏味和违反直觉的。
我该怎么做?
还有一个后续问题:如何教 DockWidget 它的内容具有特定的纵横比?
c++ - 如何在 Qt 中扩展 QDockWidget 功能?
我是 Qt 的新手,尝试了几个小部件,发现 QDockWidget 是最现代/互动的小部件
但我发现了一个小限制“关于将小部件停靠在 4 面的位置,左/右/上/下”
我想做以下两件事之一,任何一件都应该工作。
- 为停靠小部件添加更多区域“例如,它可以识别小部件之间的分隔符并从那里获取其数据,然后根据它调整自身大小”
- 将 QDockWidget 的全部功能重新实现为 QWidget 并像选项 1 一样执行
提前致谢
qt - 与 Qt 4.8 相比,为什么 FlowLayout 在 Qt 5.2 中的行为不同?
我刚刚将我的应用程序从 Qt 4.8.4 移植到 Qt 5.2.1。我对 Qt 文档中 FlowLayout 示例代码中FlowLayout
提供的类有疑问。
我有QMainWindow
一个QDockWidget
停靠在中央小部件底部的。有QDockWidget
一个FlowLayout
带有几个子小部件。在 Qt 4.8 中,这就像一个魅力,子小部件的大小符合DockWidget
. 但是,在 Qt 5.2 中,DockWidget
尝试将其大小增加到最大(从中央小部件中取代)。更改其布局可以防止这种不需要的行为。但是,当然,我FlowLayout
是故意使用的。
为了说明这个问题,我创建了一个最小的例子:
的构造函数DockWidget
:
有人知道问题是什么以及我该如何解决?
编辑 我创建了一个新的最小工作示例,不幸的是无法重现 Qt 4.8 和 Qt 5.2 之间的差异。同样的问题出现在 Qt 4.8 中,所以我还是想在这里介绍一下:
初始视图显示底部停靠的 dockwidget 占据了整个垂直空间:
用鼠标调整dockwidget大小后查看
用鼠标调整主窗口大小后查看
这些屏幕截图显示,在手动更改停靠小部件的大小后,停靠小部件的行为符合预期。但是,在初始化时,小部件会占用中央小部件的所有可用空间,这是不希望的。
有人知道解决方案/解决方法吗?
c++ - C++ Qt QTextEdit 放入垂直布局时离开设计器窗口
在 Qt 设计器中,我正在尝试制作一个文本编辑器,所以在窗口中我有 aQTextEdit
和 aQDockWidget
所以它们会随着窗口调整大小窗户。
我正在寻找的修复方法是让它们以垂直布局而不离开屏幕
windows - 如果缺少 QDockwidget,QSettings 恢复会导致应用程序在 show() 上冻结
我有一个加载 .dll 的 Qt 应用程序,该应用程序又会将QDockwidget
小部件添加到QMainWindow
. 为了保持尺寸和几何形状,我将它们保存在QMainWindow
在启动时我读回了设置
就在打电话之前show()
。
当我运行应用程序时,关闭它,然后删除其中一个 dll(实际上删除了QDockwidget
以前在启动时加载的),应用程序将show()
在QMainWindow
. 我可以通过删除注册表文件夹(我在 Windows 中)使应用程序正常启动HKEY_CURRENT_USER\Software\MyCompany\MyApplication\MainWindow
,但我丢失了存储在那里的所有其他信息。
我想要的是让 UI 出现,好像丢失的东西QDockWidget
被隐藏并且永远无法恢复,而不是破坏所有几何和状态信息的废话。
有没有人看到这个问题?竟然解决了!?!我将不胜感激任何提示、提示或解决方法!
干杯
windows - QDockWidget同时改变windowTitle
我有一个派生自QDockWidget
.
在我的自定义类的构造函数中,我还将标题传递给QDockWidget
构造函数并设置windowTitle
.
在运行时,我可以更改windowTitle
未停靠窗口的名称,但这不会更改停靠标题的标题。
c++ - QGridLayout 中可拆卸 QDialogs 的区域
我有一个 QMainWindow,其中包含各种小部件的 QGridLayout,如下所示:
我将在不同时间出现各种小输入对话框,我希望它们出现在布局的某些单元格中(图片中紫色选项卡小部件下方的亮青色区域)。默认情况下,它们会显示在此单元格中,但应该是可拆卸的并且能够根据需要移动(就像常规的流浪 QDialog 一样)。
解决此问题的最佳方法是什么?
我尝试使用 QDockWidget 并将其添加到网格布局中,但似乎我无法取消停靠并移动它,即使调用 setFeatures 应该允许这种自由。
addDockWidget 函数允许进行所需的移动,但这不会让我将停靠区域合并到网格中;它只是将停靠小部件放在整个主窗口的一侧。
qt - Qt - 在 Dock Widget 中将布局扩展到最大尺寸
我正在为我们的独立游戏项目开发类似 CAD 的小程序。我已经有了一堆小部件等很好的工作表单。但有一件事困扰着我。
我正在使用DockWidgets
这些我有QTableWidget
和空的水平布局作为容器等待OpenGLWindow
我稍后初始化并将其放入的类。当我启动应用程序时,所有应用程序DockWidgets
都设置为QTableWidget
忽略OpenGLWindow
在创建表单实例时添加到布局中的大小,我必须自己扩展停靠栏。
那么有没有办法告诉dock小部件尽可能地扩展呢?
我的OpenGLWindow
样子:
这就是我在启动时将其插入布局的方式:
我试图通过许多不同的奇怪方式来扩展它,现在我真的没有想法了。
感谢帮助。
更新: 这就是容器的大小政策:
更新: 主要问题是将 QDockWidget 调整为最大可能宽度。
更新: 我仍然有同样的问题,但是当我添加了一个与前一个共享上下文的 OpenGLWindow 时,现在出现了新的问题。现在,两个容器小部件在启动时都略微过大,因此它们覆盖了 DockWidgets 标题,当我在主窗口中调整任何小部件的大小时,它们只会像预期的那样调整为正常大小。