问题标签 [qsizepolicy]

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 回答
143 浏览

layout - Qt4。为什么 QLayoutItem 中没有 sizePolicy 虚拟方法?

我想实现自己的 QLayoutItem 继任者,但我无法为布局提供 QSizePolicy,因为 QLayoutItem 中没有 sizePolicy 虚拟方法。

我查看了 Qt 源代码,发现 QLayout 直接从 QWidget 获取 sizePolicy,避免使用 QWidgetItem。

为什么巨魔这样做了?而我能做什么?

0 投票
1 回答
1850 浏览

qt - 如果窗口容器更改其大小,如何自动调整按钮大小

我有一个窗口和一堆按钮。这个窗口将是我的“主菜单”。放置按钮后,我希望将这些按钮固定到此窗口的大小。因此,如果窗口改变了他的(例如由用户),他们应该填充窗口并改变它们的大小。

我怎么做?

0 投票
1 回答
204 浏览

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

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

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

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

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

0 投票
1 回答
654 浏览

qt - QTableWidget 列的相对大小调整

我在对话框中使用 4-5 列的 QTableWidget。对话框可调整大小,我希望表格小部件列根据对话框大小调整大小,即如果我增加对话框宽度,最初设置为大宽度的列应该比设置为较小宽度的列扩展得更多。

简而言之,我希望相对调整大小,例如 column1 应该占据 20%,column2 占据我的表格宽度的 50%(随着对话框宽度的增加而增加)等等。

Qt 中的 QTableWidget 如何实现这一点?

任何解决方案、指针或提示都会非常有帮助。

0 投票
0 回答
755 浏览

qt - 根据窗口大小调整 Qt 小部件的大小

我将某些 Qt 小部件插入到 Qt 窗口的子 QLayouts 中。我正在尝试添加需要初始化小部件的建议大小。我还希望 Qt 调整小部件的大小与 Qt 窗口的大小成比例。此外,我想为必须遵守的小部件设置纵横比。但是,我可以这样做的唯一方法是使用 setFixedSize()。虽然这个小部件不能用窗口重新缩放。有什么建议么??

编辑:我尝试继承 QWidget 并重新实现 heightForWidth(int w) 函数,如此处所述(如何在 Qt 中保持小部件纵横比?)!. 没有任何运气。我在 QtScrollArea 派生类中设置布局。

0 投票
1 回答
1153 浏览

qt - 具有扩展宽度的 QTabWidget setCornerWidget

我只是希望 QTabWidget 的cornerWidget 尽可能扩大其宽度。我尝试将 QSizePolicy 设置为 {Expanding, Expanding} 但我无法让它工作。我想在左边有一些标签,在右边有一个占据所有剩余空间的小部件。

我可以通过覆盖 sizeHint 让它占据固定宽度,但这不是动态调整大小。有人知道怎么做吗?这是Qt中的错误吗?

我在 Linux 中使用 Qt 5.0.2。

0 投票
1 回答
1372 浏览

qt - QSizePolicy的真正含义、文档和思考

两年来我一直在深入研究 Qt 布局系统。在此之后,我遇到了 SizePolicies 和 Layouts 的大量问题。我通常会找到解决方案,但从来没有真正理解我在做什么。

现在我花了一些时间来尝试正确理解并为他们构建一个 101 指南并且永远不会失败。我在关于 QWidget 的 QSizePolicy 的文档中找到了这条信息:

此属性保存小部件的默认布局行为

如果有一个 QLayout 管理这个小部件的孩子,则使用该布局指定的大小策略。如果没有这样的 QLayout,则使用此函数的结果。

例如,我认为如果您有一个 QLabel,并且您将策略设置为水平扩展、垂直固定,那么标签本身就会改变这种方式。但它根本没有。

阅读时,我看到它在布局中谈论它的孩子。那么它是什么意思呢?标签内没有任何内容,这就是它不起作用的原因吗?

如何在 QFrame 中插入标签,并告诉框架正在扩展... QFrame 会扩展或拉伸(取决于同一布局中的其他兄弟小部件)还是标签会扩展或拉伸,而不是 QFrame?

真是一团糟...

拉伸呢?如果在添加小部件时设置拉伸 10:

它也不起作用。

添加小部件时拉伸 0 意味着:采用我告诉你的政策。默认值,取决于小部件的类型。类似按钮的小部件具有扩展固定功能。盒状扩展-扩展...

Stretch 10 表示:最大增长。

我对吗?出色地。当内部有 QFrame 和 QLabel 时,将 Expanding 和 10 设置为拉伸到标签不起作用。

0 投票
1 回答
2497 浏览

qt - Qt:HBoxLayout - 停止 MainWindow 调整大小到内容

似乎大多数人都在问如何QMainWindow调整其内容的大小 - 我有相反的问题,我的 MainWindow确实调整了大小,我不知道为什么。

当我将我的文本设置QLabel为更长的文本时,我的主窗口突然变大了,我不知道为什么会发生这种情况。

以下示例代码基本包含:

  • 一个QMainWindow
    • AQWidget作为中心小部件
      • 作为QVBoxLayout那个的孩子
        • LabelBar里面那个。

LabelBar是一个QWidget,它又包含:

  • 一个QHBoxLayout
    • 里面有两个QLabel

一秒钟后,aQTimer将标签设置为更长的文本以说明问题。

PyQt 示例代码:

0 投票
0 回答
267 浏览

python - 从 QSqlTableModel 更新 select() 后 PyQt4 调整 QCombobox

我正在让模型更新 QCombobox 的内容项,但我似乎无法让组合框适应内容,即使我在设置 QCombobox 小部件时建立了该指令。模型更新后,组合框保持相同的宽度,并且不会调整以适应文本内容,并且较长的文本字符串会被截断,直到我重新启动应用程序。如何根据模型的内容动态调整 QCombobox 的尺寸?

这是组合框:

这是更新组合框模型的对话框窗口:

0 投票
1 回答
261 浏览

qt - qt 只增长大小策略

我有 QLabel,这个宽度缩小到内容大小。如何将大小策略设置为仅增长策略?例如,我将文本设置为“12345”,并且 QLabel 应该增长到最小尺寸以显示此内容,但是当我设置“12”时,它不会缩小并保持旧尺寸。