问题标签 [qsplitter]
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.
python - QSplitter、QWidget 调整大小、setSizes()、setStretchFactor() 和 sizeHint() - 如何让它们一起工作?
我正在努力研究如何使标题中的所有内容在特定情况下协同工作。我在这里使用 PyQt5,但可以随意使用常规 C++ Qt 进行响应,因为我可以很容易地翻译。
我正在尝试使用以下内容制作 UI:
主要形式(继承自
QWidget
,也可以使用QMainWindow
)主窗体应包含一个
QSplitter
垂直方向QTextEdit
,顶部包含一个 a 并包含一个自定义类(继承自QLabel
)以显示占据其余空间的图像。顶部的
QTextEdit
应该默认为大约 3 行文本高,但这应该可以通过QSplitter
.自定义类应该在给定可用空间的情况下将图像调整为尽可能大,同时保持纵横比。
当然,棘手的部分是根据用户的显示器大小以及表单的移动方式来正确调整所有内容的大小。我需要它在小至约 1,000 像素宽度和可能大至 3,000+ 像素宽度的屏幕上运行。
这是我到目前为止所拥有的:
目前我正在一个 2560x1440 屏幕上进行测试,并且1000
输入了魔法,它适用于这个屏幕尺寸,但我真的不喜欢硬编码的1000
. 我怀疑我遗漏的代码区域是这部分:
使用硬编码的 1000 在这个特定的屏幕上它工作得很好:
重申(希望更清楚)我试图能够删除硬编码的 1000 和命令 Qt,如下所示:
- 最初使表格占据屏幕的大约 2/3
- 最初使文本框大约 3 行文本高(最少 2 行文本高)
- 允许用户使用 QSplitter 随时无限制地调整文本框和图像的大小
- 调整表单大小(或最小化或最大化)时,根据用户在调整大小时的大小按比例调整文本框和图像的大小
我已经尝试了标题中提到的所有东西的组合,到目前为止在这篇文章中,但我无法获得这个功能,除了硬编码的 1000 可能不适用于不同的屏幕尺寸.
如何删除硬编码的 1000 并修改上述内容以实现预期功能?
python-3.x - 在 PyQt5 中连接多个 QSplitter
我有 3 个要连接的 QWidget。基本上它应该是这样的:
到目前为止我尝试的是:
1)将每个widget添加到对应的QSplitter
在这里我得到一个可移动的分离器,它应该是 splitter2
2) 将完整的 splitter1 Widget 作为第一个参数添加到 splitter2
这里只有第一个分离器处于活动状态。
这样做的正确方法是什么?
c++ - Qt Designer 在我的 QMainWindow 中的小部件之间添加拆分器
我有一个看起来像这样的页面
我想在我的第一个和第二个小部件之间放置一个 QSplitter,但是当我选择它们然后在菜单中选择布局时,该选项Lay Out Vertically In Splitter
仍然处于禁用状态。我错过了什么?
python - QTabWidget 插入一个 QSplitter 不能在拆分器禁用时切换
我在 QSplitter 中插入了 QFrame 和 QTabWidget。我想禁止在 QSplitter 中调整元素的大小。所以我在QSplitter中调用'setDisabled'的方法。它对于禁用调整元素大小很有用。但我也无法切换 QTabWidget 的选项卡。谁能给我一些建议?非常感谢......
程序的运行结果
pyqt5 - PYQT5:如何将拆分器设置为网格布局?
我想将绘图网格添加到拆分器。我知道如何将垂直(QSplitter(Qt.Vertical))和水平(QSplitter(Qt.Horizontal))布局设置为拆分器,但不确定如何在网格布局中进行设置。
python - Pyqt5 使 QSplitter 处理丰富多彩/可区分
我想改变我的拆分器句柄在 Pyqt5 中的外观。在下面的代码中,将 self.widg_1 和 self.widg_2 视为任意两个小部件。使用setStyleSheet会导致错误: self.my_splitter_handle.setStyleSheet("border: 3px blue") AttributeError: 'NoneType' object has no attribute 'setStyleSheet'
注意:我只想要一个体面且突出的分离器手柄,带有箭头或其他标记,如图像中的那个。
python - 为什么我的 QSplitter 的 QSplitterHandles 拒绝格式化?
我有一个简单QSplitter
的几个小部件:
生成的拆分器功能非常好,因为我可以将鼠标悬停在它们的位置上,查看光标的变化,然后拖动它们并更改相邻小部件的大小。
问题是手柄本身,QSplitterHandles
绝对拒绝对它们进行任何视觉修改。
我试过样式表:
我尝试向它们添加带有小部件的布局:
并且绝对没有做任何事情来改变这些句柄的显示方式。我可以改变的唯一“视觉”的东西是它们的宽度,那就是 via QSplitter.setHandleWidth()
。
有人请指出我在这里错过的痛苦,愚蠢的显而易见的事情,这样我就可以继续我的生活。
c++ - 更改背景颜色特定的 QSplitter Child
我在 Windows 10 Pro 上使用 Qt Creator 4.13.1 和 Qt 5.15.1。
我是在 Qt 中使用样式表的新手,并且对可能考虑的选择器QSplitter
及其子项感到有些困惑。我想让 2 个孩子用分离器手柄分开,并用不同的颜色绘制他们的背景。
这是一个示例场景
我试过的地方:
widgetA->setStyleSheet("background-color: #ff0000;");
这适用于widgetA
(eg QLabels, QPushButtons, ...) 的所有子小部件,但不适用于它们周围的widgetA
本身splitter->setStyleSheet("background-color: #ff0000;");
适用于widgetA
,widgetB
和句柄以及下面的所有小widgetA
部件widgetB
- 命名
widgetA->setObjectName("Tim");
,splitter->setStyleSheet("QWidget#Tim {background-color: #ff0000;}");
这根本没有影响。 - [编辑]
splitter->setStyleSheet("QSplitter QWidget #Andy {background-color: #ff0000;}");
仅将背景应用于任一子小部件内的某个小部件。但是使用splitter->setStyleSheet("QSplitter #Tim {background-color: #ff0000;}");
(再次)完全没有效果。
我将如何单独设置background-color
of widgetA
,因此不影响子级widgetA
或其他拆分器子级widgetB
?