问题标签 [qlayout]
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.
c++ - QVideoWidget 对齐时不显示任何内容
我有一个奇怪的问题,需要一些帮助。情况很简单:我有一个QMediaPlayer、QVideoWidget和一些布局(例如QVboxLayout;好吧,这并不重要)。问题是当我添加QVideoWidget并指定对齐时 - 视频不显示,小部件只有一个位置,一个没有视频的空白区域。如果我在不指定对齐方式的情况下添加它也没有问题。这是代码示例:
小部件.h:
有什么建议么?提前致谢。
升级版:
发现了一件有趣的事情 - 如果视频小部件的“qDebugging” geometry()与中心对齐“关闭”它看起来像这样:QRect(11,11 579x459) 但是如果我尝试将它对齐到中心它看起来像这样:QRect( 300,240 0x0)
左对齐:QRect(11,11 0x456)
不知道为什么会发生这种情况以及解决此问题的正确方法是什么,但即使我将QVideoWidget更改为QGraphicsScene-QGraphicsView-QGraphicsVideoItem链,它也会重复。
c++ - QGraphicsItem 是否存在任何布局模型
不幸的是,我看不到任何有关此的记录信息。我需要一个布局类,QLayout
但不是用于小部件中的小部件,而是用于QGraphicsItem
内部QGraphicsItem
s。我有:
简而言之,我的GraphicsView
对象有一个场景,该场景在另一个 QGraphicsItem 对象中包含 QGraphicsItem 对象
QGraphicsView -> QGraphicsScene -> QGraphicsItem (GraphicsItem) -> 4x QGraphicsItem (AnotherGraphicsItem)
问题是我需要AnotherGraphicsItem
在外部GraphicsItem
对象中以某种方式对齐。我虽然使用过,QGraphicsLayout
但似乎它需要在QGraphicsWidget
我不会使用的内部使用,或者它仅适用于QGraphicsView
(它有setLayout()
方法)。
也欢迎一些好的例子。
qt - QT5.4 删除和删除布局中的小部件
我有一个QStackedLayout
包含很少QWidget
的内容。小部件布局QVBoxLayout
也很少QPushButton
。我想要做的是删除里面的所有小部件QStackedLayout
,然后删除小部件和布局但我希望不要删除所有按钮,因为我稍后会将它们放到另一个小部件中。
这是我的代码:
应用程序在该行崩溃delete w;
。而且,如果我删除这些delete
行,应用程序就可以正常工作。
c++ - QScrollArea 垂直 sizePolicy - 将内容调整到最大高度
我遇到了一个真正的挑战,就是QScrollArea
将可能的最小空间提升到最大高度。
我的 GUI 模型如下: AQScrollArea
包含一个垂直布局,其中填充了 class 的小部件TableRow
。我希望这个类TableRow
占据尽可能小的高度。它在顶部有一个始终可见的小部件,在其QScrollArea
下方有一个标签,其可见性可以切换。该标签适用于可能是 0 个字符或无限长的注释(除了硬件限制)。
我发现,对于类中的标签,TableRow
将垂直设置sizePolicy
为Fixed
实际上会占用它需要多少来适应所有内容(请参阅: Qt 布局,在小部件大小更改后调整为最小值)。但是,这似乎不适用于QScrollArea
. 事实上,sizePolicy
我尝试过的每一个都保持QScrollArea
在一个固定的高度;除了Ignore
,但QScrollArea
不管它的内容如何,它的高度都为 0。
我创建了一个git 分支,生成了这个问题的简化版本。
这是应用固定垂直 sizePolicy 的结果:
我对这个测试用例的期望:
- 第一个小部件的高度应接近 30 像素(上部小部件的高度),仅显示和的
QLabel
边框QScrollArea
- 第二个小部件的高度应小于 130 像素(最大高度为 100
QScrollArea
像素),但大到足以显示标签而无需滚动 - 第三个小部件的高度应该是 130 像素,并且应该出现滚动条(这部分在我尝试过的所有情况下都是正确的,除了垂直
sizePolicy
设置为时Ignored
)
我知道我可能需要重写一些东西才能使它工作,因为它本身并不明显为什么 QScrollArea 的高度可能取决于它的子小部件(这可能就是为什么它不是为了让这件事变得简单,或者至少看起来好像不是)。
但是,我认为我试图提出的案例已经足够普遍,我目前的做法是合理的。如果有另一种/更好的方法可以使单个小部件在达到最大高度后滚动,我愿意作为答案,只要它满足我期望的三个条件。
qt - 无法让QFormLayout中的QGraphicsView垂直展开
我继承了 Qt 代码库和基于 QWidget 的 Editor 类。编辑器设置为自动使用 QFormLayout 作为其布局,并且很多相关代码都假定了 QFormLayout,以至于我实际上无法为另一个布局重新编码。
问题 - 我正在处理的编辑器将有一个交互式 QGraphicsView 应该调整大小以填充编辑器的空间。不幸的是,它只会水平调整大小,而不是垂直调整。将 QGraphicsView(由 QGraphicsView *m_view 引用)添加到布局中,如下所示:
(Editor 类设置布局,这就是为什么这个子类只是检索它而不是创建一个新的)
m_view 是唯一添加到 QFormLayout 的东西。我已经尝试使用大小提示、大小策略、大小限制、字段增长策略的多种组合来让它垂直扩展 - 你可以说出来。无论我做什么,m_view 都会将其高度调整为为其设置的最小尺寸(如果我不使用 setMinimumSize 或 setMinimumHeight,则为 75 像素)。我检查了继承的 Editor 类,但它没有做任何影响大小调整的事情。
我读过其他类似的问题,QFormLayout 行不垂直调整大小是正常行为。变通方法往往涉及使用不同的布局,但这不是一个现实的选择。2-1/2 年前提出的一个问题 - “ QFormLayout 中的 QSpacerItem - Vertical Expand ” - 有一个有趣的回答,涉及“通过将 [an] HBoxLayout 放入 QWidget 的间接层”,但我不知道如何从给定的描述中尝试一下,并且没有足够的声誉来发表评论询问详细信息(无论如何这在旧的线程上可能是徒劳的)。
那么 - 有没有人知道一种方法可以让 QFormLayout 允许我的 m_view 填充可用的高度和宽度?
c++ - 如何以编程方式将 Qt 小部件(QPushButton、QTextEdit、QLabel)添加到 Qt Designer 布局?
是否可以将小部件(按钮、标签等)动态添加到 Qt Designer 生成的中央小部件布局中?怎么做到呢?
谢谢!
qt - Qt - 删除小部件时布局不会缩小
我正在处理形状更改对话框。当点击更多按钮时,它应该放大,再次点击时缩小。我所做的是使用layout() -> addWidget()
and layout() -> removeWidget()
。当我添加一个小部件时它会正确放大,但当我删除一些东西时它不会缩小。我尝试使用layout() -> update()
and layout() -> updateGeometry()
,但它们都不起作用。
编辑** 这是单击按钮时我调用的函数。
replaceBox
是一个QGroupBox
moreButton
是一个QPushButton
findDialog
是一个QDialog inherited class
qt - 将没有布局的 QWidget 添加到 QStackedWidget 镶嵌间隙
我有一个 QStackedWidget,我添加了多个 QWidget() 对象。每个 QWidget 都有自己的布局。由于某种原因,当它将 QWidget 添加到 QStacked 小部件时,它并没有将其添加到位置“0,0”......它似乎总是将它嵌入到 QStackedWidget 的每个边缘 3 或 4 个像素处。参见图片示例...我将 QStackedWidget 背景设为黑色,因此很容易看到间隙。
问题是,我怎样才能消除这种差距并让 QWidget 与 QStackedWidget 完美对齐?
qt - 在不使用布局管理器的情况下调整 Qt 应用程序的大小
我正在努力做到这一点,所以我在 Qt 中构建的 GUI 将重新调整大小以适应任何用户窗口。我知道这传统上是使用布局管理器完成的,但是没有一个布局管理器适合我的需要。每个经理似乎都创建了不成比例的小部件。有什么方法可以制作我的小部件和屏幕的某些百分比。我想保持我的小部件的当前相对位置,只是让它们重新调整大小,因为屏幕重新调整大小相同的因素。
c++ - 如何在 QLayout 中查找给定类型的小部件?
我能够找到QRadioButton
这种方式:
但我不喜欢这种迭代元素的方式,并且想使用该foreach
构造。我的第一次尝试失败了:
问题是ui->verticalLayout->findChildren<QRadioButton*>()
返回零元素。它也不返回任何带有findChildren<QObject*>()
. 有人可以解释这种行为吗?
注意:这个问题的标题与我的几乎相同,但它与 python Qt 相关,并且不包含任何对我有用的信息。
儿童与元素?
实验上,我认为ui->verticalLayout->children().count()
返回零,而 asui->verticalLayout->count()
返回我在verticalLayout
. 这意味着itemAt(i)
和findChild<QRadioButton*>()
不访问相同的列表。查看关于 Qt 的文档对children()
我没有帮助。
有人可以指出我关于 Qt 子父概念的好材料吗?我假设这与访问嵌套对象无关,这是我想要完成的。
编辑
正如 Kuba Ober 所建议的,这个问题的答案包含关于另一个主题的有价值的信息,而他的回答澄清了我关于布局子级的问题。因此,这不是一个重复的问题。