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

0 投票
0 回答
1670 浏览

c++ - 无法让 QLabel 图像滚动

我正在努力让QLabel我设置的这个图像运行良好。我只需要让它滚动。我了解QScrollArea设置,但这不是QScrollArea.

我需要在mainwindow.cpp我的QLabel. 这是我设置我的区域QLabel以及我希望将其设置为能够滚动的区域。

QScrollArea如果没有它完全控制整个程序并显示所有图像,我不知道如何开始工作。

我只需要图像可滚动,请给我示例代码,它使一切更容易掌握。预先感谢您的协助。

PS我不希望滚动超过主小部件,只是其中QLabel包含图像的小部件。

0 投票
3 回答
15615 浏览

c++ - Qt QGridLayout 自动将项目居中(移动)到中间。

我的表单上有一个QHBoxLayout添加了 3 个布局的表单。第二个有关于我的问题的项目。

QVBoxLayout在主布局的第二个窗格(QHBoxLayout)上有一个。这QVBoxLayout有一个QScrollArea添加到它addWidget

QScrollArea是一个QWidget名为“scrollContents”的父级,后者又包含一个QGridLayout.

我正在向其中添加一个自定义创建的小部件,QGridLayout它具有固定的高度。我们100px现在可以考虑一下。

如果这QGridLayout有项目,其总高度小于表单本身,它将这些小部件垂直居中,它们之间的空间相同。

如果只有一个小部件,它会出现在中间。但我希望它们从上到下列出。

例如:[### 表示QScrollArea其中有 aQWidget区域 QGridLayout

基本上:如果有 9 个“行”的空间,当添加一个项目时,它会出现在中间的第 5 个位置。如果有 9 个或更多,它们将按应有的方式显示。如果有 8 个或更少,则它们之间的空间将扩大到全部居中。

我该如何解决这个问题?

谢谢你。

0 投票
1 回答
746 浏览

c++ - 使用 Qt,我应该使用 setStyleSheet 还是 QPalette(Background, image) 来设置背景图像?

我对使用 Qt 进行开发相当陌生。过去一周我读了很多书,听说有时使用样式表设置背景图像会导致“减速”问题。

作为我的天才(讽刺),我想出了如何使用 QPalette.setBrush() 方法设置背景。

我的问题是:

  • 在为 QWidget、QScrollArea 等设置背景图像时,我应该使用哪种方法来获得最佳性能(如果重要的话,低内存占用)。

如果有帮助,我正在使用的图像会重复出现。

0 投票
1 回答
11497 浏览

qt - 如何使小部件溢出以使滚动条出现在 Qt 中?

我的小部件的结构是:

QWidget 自定义为带有圆形边框的面板。

要在边界内包含一个带有滚动条的区域并带有边距,然后我把它放在里面:

带有 QVBoxLayout 的 QScrollArea(垂直添加内容)

然后我在其中添加了一系列:

标题间距为 0 的 QGroupBox 和 QFormLayout

表单布局不像我想象的那样工作。里面的小部件是标签+旋转框,所有这些。

这是一张图片:

图片

第一的。他们没有居中。我不知道为什么。

第二。正如我告诉他们的,它们都被赋予了相同的固定尺寸,但无论如何它们都是堆积的,而不是压扁的,所以它们相互隐藏。为什么它不保持那个大小并且父 QScrollArea 显示外面的滚动条?这就是我想要的。

我不希望内容被压扁或拉伸。我希望他们处于领先地位。如果屏幕很大,面板会很长,但内容会在最上面,总是一样的大小。


有人要了代码,所以我把它复制在这里,但是代码真的很大......我认为它更令人困惑。但是好吧,我会删除没有意义的线条。这是您在该框中看到的部分:

现在是所有样式表:

0 投票
3 回答
2600 浏览

qt - Qt ensureVisible() 在 QScrollArea 中不起作用

我有 2 列。其中一列充满了许多 QWidget。当我在列中放置一个小部件时,我调用此方法:

当我在第一列的底部并在下一个中拖动一个小部件时。滚动区域正确滚动到底部,以便我可以看到我将其放置在哪里。

但是当我将小部件放回第一列时,它会滚动但不会完全滚动到底部。它的大约 150 像素(编辑:150 像素不是真的。我只看到大约 5 像素的小部件)

有谁能够帮我?

编辑:

也许很高兴知道我的布局。

我有一个带有QScrollArea. scrollArea 有一个QWidget被调用的scrollAreaWidgetContents,它有一个 QHBoxLayout。该小部件有 5 列。这些具有用于我的拖放小部件的 QVBoxLayout。

天哪,另一个编辑:

我注意到只有最后一项出错了。

我只是继续编辑

我现在很清楚滚动条并没有一直向下。

此代码也显示相同的行为。我应该怎么处理这个线程?我应该创建一个新的吗?

0 投票
2 回答
2607 浏览

c++ - QScrollArea 小部件未使用 Flowlayout 扩展

我有一个带有QScrollArea小部件的用户界面。QScrollArea使用Flowlayout。_ 我的问题是,当我在布局中添加小部件时,滚动区域开始滚动,并且在有扩展空间时不会扩展。我希望滚动区域在滚动条首先出现之前扩展到其极限。

如何在滚动条出现之前让滚动区域扩大?

0 投票
1 回答
750 浏览

qt - 如何在 QT 中隐藏 qscrollbar 上下文菜单

如何隐藏右键单击时出现的滚动条上下文菜单?

0 投票
1 回答
2000 浏览

resize - 使 QTreeView 自动调整为内容

我正在尝试QTreeView对其内容进行自动调整大小。这是我的设置:我正在尝试创建一个QWidget带有Qt.Tool | Qt.FramelessWindowHintas its的“智能”工具提示WindowFlags,效果很好。它包含一个带有一些按钮的布局(其大小是恒定的)和QTreeView. 现在,每当向QTreeView's 模型添加行时,QTreeView应该会自动增加其大小以避免垂直滚动条。

QSizePolicy.Expanding在工具提示小部件上设置QTreeView并没有改变任何东西 - 也许我在这里遗漏了一些额外的标志或其他东西。

我还尝试了以下蛮力方法:

这在大多数情况下都有效,但并非总是如此。每隔一段时间(准确地说是每隔一次,但我不知道这是否是巧合),使用此代码,视图会正确调整大小(即所有内容都适合,并且不需要滚动条),但滚动条不会消失,允许滚动到最后一行下方的空白处。

0 投票
1 回答
204 浏览

scrollbar - 使用垂直分隔符在窗口中集中 QTableView

我正在尝试创建一个包含 QTableView 的主窗口(固定大小),上面和下面都有 QSpacerItems,以便(垂直)集中表格。

(抱歉,显然无法发布图片)。

我有一个 QVBoxLayout,其中有一个垂直垫片、QTableView 和另一个垂直垫片。我已经为所有三个小部件使用了 QSizePolicy 的所有组合,但我无法在没有滚动条的情况下显示表格。(我不能使用 Qt.ScrollBarAlwaysOff ,因为如果项目数超过主窗口的大小,则需要它们)。因此,QTableView 上的垂直滚动条会显示出来,即使垂直间隔在视图和主窗口之间吸收了大量空间。

我希望垂直垫片占据表格小部件上方和下方所需的最小空间,以便集中行,并且表格小部件可以显示尽可能多的行,而无需滚动条。

0 投票
3 回答
1051 浏览

c++ - QScrollBar + QScrollAera in QTabWidget

My question is simple : how can I set a QScrollBar in my QScrollArea. I have tested a lot of things but nothing work ... Maybe it's a problem to set a QScrollArea in a QTabWidget ? Here is the code :

In fact, I add pictures in a tab where is created a QScrollArea (like 8-9 lines of pictures) but only 5 are visible, the others are hide, because they are at the bottom, out of the defined zone.

Any idea ? Thank's.