问题标签 [qscrollarea]
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 - 如何将固定标题添加到 QScrollArea?
我目前有一个 QScrollArea 定义为:
它非常高兴地嵌套在其他布局/小部件中,按预期调整大小等。
为了为网格列提供标题,我使用了位于滚动区域正上方的另一个 QGridLayout - 这很有效……但看起来有点奇怪,即使样式设置得当,尤其是当按需(垂直)滚动条出现或消失时根据需要,标题不再与网格列正确对齐。这是我所知道的美学问题……但我有点挑剔;)
self.results_grid_layout
其他小部件以编程方式添加/删除到其他地方。上面的最后一行我最近刚刚添加,因为我认为使用创建的边距区域很容易,setViewportMargins 的文档状态:
设置滚动区域周围的边距。这对于具有“锁定”行和列的电子表格等应用程序很有用。边缘空间留空;将小部件放在未使用的区域。
但是我一辈子都无法弄清楚如何真正实现这一目标,而且我的 GoogleFu 今天已经抛弃了我,或者几乎没有关于如何真正实现这一目标的信息/示例。
我的头脑告诉我,我可以只分配一个小部件,由布局(包含任意数量的其他小部件)控制到滚动区域 - 正如我所做的那样。如果我将 QHeaderview 例如添加到网格布局的第 0 行,它只会出现在视口的边距下方并与布局的其余部分一起滚动?还是我错过了一些东西,只是看不到树木的树木?
我只是在学习 Python/Qt,所以任何帮助、指针和/或示例(最好使用 Python,但不是必需的)将不胜感激!
编辑:遵循到目前为止给出的建议(我认为),我想出了以下小测试程序来尝试一下:
沿着这些思路的东西是你所指的方法吗?一切都按预期工作,这正是我所追求的,除了在用户调整窗口大小之前的一些奇怪的初始行为,一旦调整大小,一切都排好了。我可能又想多了,或者至少忽略了一些东西……有什么想法吗?
python - 获取pyqt4 python中scrollarea产生的滚动条的值
我使用下面的代码创建了一个带有滚动条的框架。在框架内,我创建了另一个可以拖放的小部件。问题是当垂直滚动条存在时,假设您向下滚动然后拖放对象,对象会落在错误的 y 坐标处。我可以获取滚动条的值然后将其添加到 y 坐标吗?还是有其他方法可以解决这个问题?提前致谢 :)
qt - QScrollArea 小部件在添加子小部件时自动调整大小
我有以下结构:
QLabels 是使用随机文本自动生成的。如何自动更改小部件的大小以适合标签?目前我只能通过设置固定大小来查看小部件。
解决方案:
创建 QLabel 后,我存储它的宽度:
在循环之后,我将固定宽度设置为小部件:
感谢@shobi 的提示!
qt - 如果 QScrollArea 衍生物是从 .ui 文件创建的,则它是空的
考虑以下简单示例:
面积.hh
区域.cc
此滚动区域应在其中显示一个标签。如果您只是创建一个 Area 对象并像这样显示它,它会做得很好:
但是,如果您QScrollArea
使用 Qt Creator 添加一个并将其提升到Area
类,那么它内部什么都没有显示,也没有滚动条。我该怎么做才能正确显示它?
qt - 如何防止 QAbstractScrollArea / QTableView 水平滚动?
我有一个 QTableView 和其中的一些内容。我想要这样的行为,horizontalHeader() -> setResizeMode( ResizeToContent )
但它不能创建水平滚动条——我的意思是视口不能比表格宽。
即使创建一个新的 QHeaderView 也不是那么容易,因为只有几个虚拟方法。
提前致谢,
查理
PS:我有一个自定义项目委托,它用“...”缩短长文本。它以 sizeHint() 的形式返回完整尺寸,但是当 paint() 方法接收到较小的尺寸(例如,使用 resizeMode() == Qt::Interactive 模拟)时,它会裁剪内容。
c++ - 向 QGridLayout 添加太多小部件
我有一个从设计器创建的 UI,带有一个QGridLayout,我在其中从代码中添加了我的自定义小部件。添加1~4个自定义小部件时没有问题,但是当我尝试放置更多时,它们会重叠。
这是完成解释的图像:
不重叠:http: //i45.tinypic.com/wve8o6.png
重叠:http: //i47.tinypic.com/565py.png
我正在尝试找到一种向 QGridLayout 添加某种滚动的方法,因此我的自定义小部件不会在它们之间重叠,并且我可以与它们进行交互。
我尝试使用 QScrollArea 但是当我添加超过 4 个小部件时,它们继续重叠并且滚动无法正常工作。
python - 如何找出 QScrollArea 的子小部件是否可见?
我QLabels
在 a上显示多个QFrame
,放入 aQScrollArea
中。
我可以告诉QScrollArea
用 使任何QLabels
可见QScrollArea.ensureWidgetVisible(QLabel)
,但我似乎找不到一种方法来确定子小部件当前是否可见。我会期待类似的东西QScrollArea.isWidgetVisible(QWidget)
。
我尝试使用孩子自己的方法,即,QLabel.isVisible()
但无论 是否QLabel
可见QScrollArea
,它总是返回True
(参见下面的示例)。有什么办法解决这个问题?
python - 如何防止 QScrollArea 的缩放变得如此摇摇晃晃?
我正在使用 PyQt4 和 python-popplerqt4 开发 PDF 阅读器。PDF 页面(QPixmaps)显示在 QLables 中,在 QFrame 中垂直布局。QFrame 被放置在 QScrollArea 中。
文档的大小由 QLabels 的固定大小决定。QPixmap 被设置为相应地拉伸,页面周围的 QFrame 自然地调整其大小。
当我要求缩放时,页面(QLabels)会用QLabel.setFixedSize()
. 然而效果令人失望:调整文件大小看起来摇摇晃晃。相比之下,放大 Evince 或 Mendeley 真的很流畅。
我在其他地方读到过,QFrame.hide()
在缩放之前和QFrame.show()
之后调用会有所帮助。事实上,它适用于一个小文件。但是,例如应用于大约 700 页的 PDF,意味着空白QScrollArea 超过一秒钟。不好。
如何缩放 QScrollArea 中的文档并产生平滑的缩放效果?
PS: Poppler.Pages 的图像仅为可见的 QLabel 收件人绘制。即调整 700 页文档的大小并不涉及调整那么多图像的大小。实际上,它最多会调整 2 到 4 个图像的大小(并且分辨率越多,分辨率越小)。然后调整 Document 对象的大小仅包括调整 QLabels 的大小,大部分是空的。
c++ - QGroupBox中的QScrollArea
我正在尝试实现以下架构:
- QGroupBox --> 设置布局
- QVBoxLayout --> addWidget
- QScrollArea --> setWidget
- QWidget --> 设置布局
- QVBoxLayout --> addWidget
- 我的小部件(Mesures)
- QVBoxLayout --> addWidget
- QWidget --> 设置布局
- QScrollArea --> setWidget
- QVBoxLayout --> addWidget
我正在寻找的结果是有一个带有滚动区域的组框,里面有我所有的小部件。但是当我尝试实现这一点时,滚动区域中没有任何内容。
这是我所拥有的:http: //imgur.com/SgQkJ
编辑:这就是我删除滚动区域并直接将我的小部件放入 gorupbox http://imgur.com/iuTnV时所拥有的
这是我的代码:
测量.h
测量.cpp
PanneauMesure.h
PanneauMesure.cpp
主文件
image - QLabel 在 QScrollArea 内显示图像
我已经在 Qt 中成功实现了一个图像查看器(用于 DICOM)。我可以看到图像,并且可以正确放大和缩小。
现在,如果图像太大而无法在放大时显示,我想查看滚动条。
我用过用户界面。我放置了一个QScrollArea。在里面,QLabel。verticalScrollBarPolicy是ScrollBarAsNeeded。_ Horizo ntalScrollBarPolicy是ScrollBarAsNeeded。
问题是:它不起作用。我放大,但没有出现滚动条。
第二次尝试:使用 QScrollArea 内的布局。
所以现在在 QScrollArea 和 QLabel 之间有一个QWidget :一个水平布局。打开相同的图像,现在我可以在右侧看到一个垂直滚动条。图像从左到右拉伸。当我缩放图像时,它的比例是正确的。
但是...我缩小了滚动条,即使我可以看到整个图像。水平滚动条永远不会出现。
调整 QLabel 的大小似乎没有影响。但是,如果我调整 QScrollArea 的大小(调整主窗口的大小),则会出现水平滚动条。
我一直在检查一些数字:
在 QScrollArea 中
- 它的大小发生变化:低于 599 宽度(为什么是这个数字?我在任何地方都看不到它)出现水平条。
- sizeHint()总是返回相同的值:33x41
在 QLabel
- 尺寸会发生变化,但这并不影响。
- sizeHint()总是返回相同的值:560x1558
这是来自 UI 设计器的 XML 代码:
我错过了什么?谢谢你。