gpt4 book ai didi

qt - 了解 Qt 中的表单布局机制

转载 作者:行者123 更新时间:2023-12-03 05:43:53 25 4
gpt4 key购买 nike

Qt 拥有灵活而强大的布局机制来处理桌面应用程序窗口的 View 。

但它是如此灵活,以至于当出现问题并需要微调时,它几乎无法被理解。而且如此强大,以至于它可以击败任何试图压倒 Qt 关于表单外观的观点的人。

那么,谁能解释一下,或者提供一下Qt定位机制的文章或者来源吗?

我试图强制 QLabelQPushButtonQTableView(在其名称中用尾随下划线标记)的值高于QTextBrowser 具有下面的 verticalStretch = 1。如何正确处理小部件的高度?

.ui file of my form on google docs. Search '____' in names, preview in QtDesigner

最佳答案

布局实际上很容易理解“我认为”。 :)
布局的简单解释可以在QT书籍“ C++ Gui programming with QT 2nd edition ”中找到

有关布局及其尺寸政策的注意事项

  • 大多数 Qt 小部件都有大小策略。此大小策略告诉系统小部件应如何拉伸(stretch)或收缩。它来自 QSizePolicy 类。尺寸策略具有垂直和水平两个部分。
  • 大多数小部件也有尺寸提示。此尺寸提示告诉系统小部件的首选尺寸
  • QSizePolicy 有一个拉伸(stretch)因子,允许小部件以不同的速率增长
**我只熟悉4个尺寸政策**
  • 固定大小策略 - 小部件的大小是固定的,无法拉伸(stretch)。它保持其大小提示。
  • 最小尺寸政策 - 尺寸提示是小部件可能的最小尺寸,但如果需要,它_仍然可以_变大。
  • 首选尺寸政策 - 小部件可以缩小或变大,超过其尺寸提示。
  • 扩展尺寸政策 - 小部件可以缩小或变大,超过其尺寸提示:)
您可能想问, 首选和扩展有什么区别?**答案:** 想象一个带有 2 个小部件的表单,一个带有首选小部件,另一个带有扩展小部件。然后,任何额外的空间都将被分配给具有扩展策略的小部件。具有首选策略的小部件将保持其大小提示。

我建议(警告:我不是专家:))您购买并阅读 C++ Gui programming with QT 2nd edition ”。我目前正在阅读它,它很有意义。看看这些图像,看看它们是否有意义。

解释尺寸政策​​
Size policy explained

一个简单的例子
这是一个简单的对话框,有 2 个按钮,其水平和垂直尺寸策略显示为水平和垂直拉伸(stretch)。

example

这是最小尺寸的预览。 alt text

这是另一个更大尺寸的预览 alt text

[编辑://添加尺寸提示示例]

为什么您应该关心 SIZEHINT
您可以看到每个小部件都有一个 sizeHint,这至关重要,因为 QT 的布局系统始终尊重 sizeHint。仅当小部件的默认大小不完全符合您的要求时,这才会出现问题。解决此问题的唯一方法是扩展(子类化)小部件并重新实现其 sizeHint() 成员函数。一个例子相当于1000字。为了节省空间,请参阅我的博客,其中有一个示例项目。

关于qt - 了解 Qt 中的表单布局机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4553304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com