问题标签 [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.

0 投票
1 回答
1665 浏览

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 并修改上述内容以实现预期功能?

0 投票
1 回答
38 浏览

python - 根据像素数分屏

所以我正在尝试使用 PyQt5 创建一个 GUI,我需要像下面这样拆分我的 GUI,数字是像素

在此处输入图像描述

我试图以特定的像素值启动特定的窗口并保持这种状态,即使我拉伸我的窗口我希望窗口保持在特定的位置并且仍然是相同的大小。所以几乎所有的窗户都不会改变也不会移动

我正在尝试使用函数 QSplitter,但我找不到任何选项让它从特定像素值开始并保持不变

0 投票
1 回答
142 浏览

python-3.x - 在 PyQt5 中连接多个 QSplitter

我有 3 个要连接的 QWidget。基本上它应该是这样的:

到目前为止我尝试的是:

1)将每个widget添加到对应的QSplitter

在这里我得到一个可移动的分离器,它应该是 splitter2

2) 将完整的 splitter1 Widget 作为第一个参数添加到 splitter2

这里只有第一个分离器处于活动状态。

这样做的正确方法是什么?

0 投票
1 回答
278 浏览

c++ - Qt Designer 在我的 QMainWindow 中的小部件之间添加拆分器

我有一个看起来像这样的页面

我想在我的第一个和第二个小部件之间放置一个 QSplitter,但是当我选择它们然后在菜单中选择布局时,该选项Lay Out Vertically In Splitter仍然处于禁用状态。我错过了什么?

0 投票
3 回答
220 浏览

python - QTabWidget 插入一个 QSplitter 不能在拆分器禁用时切换

我在 QSplitter 中插入了 QFrame 和 QTabWidget。我想禁止在 QSplitter 中调整元素的大小。所以我在QSplitter中调用'setDisabled'的方法。它对于禁用调整元素大小很有用。但我也无法切换 QTabWidget 的选项卡。谁能给我一些建议?非常感谢......

程序的运行结果

0 投票
1 回答
138 浏览

python - 当我将 Qsltter 移动到带有 matplotlib 图形的边缘时,如何避免 PyQt5 崩溃?

我在 QSplitter 中有两个 matplotlib 人物。当我将拆分器移动到边缘时(然后数字消失),代码崩溃。

在此处输入图像描述

我得到的错误是

以前这不是问题,当 Qsplitter 的两侧只有一个在屏幕上时,我的代码没有崩溃。当我再次将分离器拉到中心时,该图形再次正确出现。

这是一个最小的例子:

我怎样才能避免这个错误?顺便说一句,我使用 matplotlib 3.2.1 版。

0 投票
1 回答
454 浏览

pyqt5 - PYQT5:如何将拆分器设置为网格布局?

我想将绘图网格添加到拆分器。我知道如何将垂直(QSplitter(Qt.Vertical))和水平(QSplitter(Qt.Horizo​​ntal))布局设置为拆分器,但不确定如何在网格布局中进行设置。

0 投票
0 回答
180 浏览

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'

注意:我只想要一个体面且突出的分离器手柄,带有箭头或其他标记,如图像中的那个。

分流器手柄

0 投票
1 回答
232 浏览

python - 为什么我的 QSplitter 的 QSplitterHandles 拒绝格式化?

我有一个简单QSplitter的几个小部件:

生成的拆分器功能非常好,因为我可以将鼠标悬停在它们的位置上,查看光标的变化,然后拖动它们并更改相邻小部件的大小。

问题是手柄本身,QSplitterHandles绝对拒绝对它们进行任何视觉修改。

我试过样式表:

我尝试向它们添加带有小部件的布局:

并且绝对没有做任何事情来改变这些句柄的显示方式。我可以改变的唯一“视觉”的东西是它们的宽度,那就是 via QSplitter.setHandleWidth()

有人请指出我在这里错过的痛苦,愚蠢的显而易见的事情,这样我就可以继续我的生活。

0 投票
1 回答
128 浏览

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-colorof widgetA,因此不影响子级widgetA或其他拆分器子级widgetB