理解Qt中的表单布局机制

Max*_*vko 59 forms qt qt4 qt-designer

Qt 具有灵活而强大的布局机制来处理桌面应用程序窗口的视图.

但它非常灵活,几乎无法理解,当出现问题并需要微调时.如此强大,它可以击败任何人,试图压倒Qt对形式应该如何看待的看法.

那么,任何人都可以解释,或提供文章或Qt定位机制的来源吗?

我试图强迫QLabel,QPushButton并且QTableView,在他们的名字尾随下划线标记,是高出两倍QTextBrowser有verticalStretch = 1以下.如何正确处理小部件的高度?

谷歌文档中我的表格.ui文件.在名称中搜索"____",在QtDesigner中预览

Dr *_*Deo 117

布局实际上很容易理解"我认为":)
布局的简单解释可以在qt书" C++ Gui编程与QT第2版 "中找到

关于布局及其大小政策,您应该了解什么

  • 大多数Qt小部件都有大小策略.此大小策略告诉系统窗口小部件应如何拉伸或缩小.它来自QSizePolicy类.大小策略包含垂直和水平组件.
  • 大多数小部件也有一个大小提示.此大小提示告诉系统一个小部件优先级
  • QSizePolicy有一个伸展因子,允许小部件以不同的速率增长

我只熟悉4种规模的政策

  • 固定大小策略 - 窗口小部件的大小是固定的,无法拉伸.它仍然是它的大小提示.
  • 最小大小策略 - 大小提示是小部件可能的最小大小,但如果需要,它仍然会变得更大.
  • 首选大小策略 - 小部件可以缩小或大于其大小提示.
  • 扩展大小策略 - 小部件可以缩小或增长大于其大小提示:)

你可能想问,

首选和扩展之间有什么区别?
回答:想象一下有一个带有2个小部件的表单,一个带有首选,另一个带有扩展,然后任何额外的空间将通过扩展策略提供给小部件.具有首选策略的窗口小部件将保持其大小提示.

我建议(警告:我不是专家:))你购买并阅读 " 使用QT第二版的C++ Gui编程 ".我目前正在阅读它并且它有很多意义.看一下图像,看看它们是否有意义.

解释规模政策
规模政策解释

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

例

这是最小尺寸的预览. 替代文字

这是另一个更大尺寸的预览 替代文字

[编辑://添加大小提示示例]

为什么你应该关注SIZEHINT
你可以看到每个小部件都有一个sizeHint,这是至关重要的,因为QT的布局系统总是尊重sizeHint.如果窗口小部件的默认大小不是您想要的,那么这只是一个问题.解决此问题的唯一方法是扩展(子类)窗口小部件并重新实现其sizeHint()成员函数.一个例子值1000字.要节省空间,请参阅我的博客,其中有一个示例项目.

  • 你的博客在哪里? (13认同)
  • 好消息:我找到了 [Dr. Deo 的博客](http://qtcrashcourse.blogspot.com)(我搜索并找到了[这条评论](/sf/ask/353431991/# comment5652228_5049061)Deo 博士链接了他的博客)坏消息:它关闭了 (2认同)