举例来说,我们在QMainWindow中有QHBoxLayout. 让我们在布局上面设置小部件. 但是(!)很少有小部件具有离散的视觉表示. 例如: >如果可用空间太多 – 它必须看起来像一些文字的大图像 因此,当用户更改主窗口大小时,我们的“动态”小部件必须根据可用空间显示自己的表示. 如何在Qt中实现? UPD:Microsoft功能区界面中最接近的行为 UPD2:下面的gif中存在的QML最接近的行为(在用户调整窗口大小的部分) UPD3:更复杂的示例 – 菜单面板中的每个面板都会更改内容元素视图和计数,这取决于可用空间 解决方法: 对于这个答案,我将使用Qt等效术语,而不是官方MS Ribbon术语. 概述 您实际上正在查看许多布局,其模式如下:
模式 让我们从填充的QGroupBox开始,帮助将按钮分组. 考虑我们的组框可能同时包含我们的动态QToolButton和常规小部件.当可用空间缩小时,布局: >计算固定大小的小部件所需的最小空间以及没有固定大小策略的小部件的minimumSizeHint()值. 还有希望. 我们可以通过使每个容器只能容纳动态工具按钮来简化.然后我们不必处理固定大小的小部件等棘手的问题,我们只需要处理一种类型的小部件. Microsoft也为我们帮助实现了这种行为.您可以通过经验观察了解布局和子窗口小部件的行为约束.群体何时崩溃?如果一个组崩溃,其他组是否会扩展以占用空间? (顺便说一句,答案是否定的.)按钮在崩溃时如何组合在一起?它们是如何崩溃和扩展(对它们的扩展和崩溃行为的限制)有一些特殊之处吗? Qt还实施了多种布局供我们学习,并了解它们的工作原理以及它们的不同之处. QGridLayout是一个很有前途的基础,特别是如果你做一些数学运算来动态改变小部件的行间距(这是为了将按钮分组,因为它们从垂直布局折叠到三个水平按钮的集合). 综上所述 完全回答你的问题太过广泛,无法在SO上发表主题,但我希望这些信息可以指导你到达目的地. 来源:https://www./content-4-446301.html |
|