我正在使用Qt Framework部署我的应用程序。 在Windows和Linux中,布局的行为是相同的;如果我调整窗口大小,布局就会适应。这在Mac OS中不会发生。要为Mac开发,我使用虚拟机(分辨率为1024x768),但是,当我尝试在" true" Mac(分辨率最大)结果太糟糕了!
我放了一些照片:
MAC - 虚拟机(1024x768) - 第一个标签(OK)
MAC - 虚拟机(1024x768) - 第二个选项卡(不正常)**
**第二个标签" Rubrica Contatti"设计就像第一个标签" Ricettario"。在设计师中,第二个选项卡似乎没问题,在运行时没有!
我试图创建一个新项目进行测试。 我已使用表单布局设置中央窗口小部件。 我创建了2个包含这些项目的小部件(每个小部件都有一个网格布局):
所有这三个项目都以垂直布局聚类。我将左侧小部件放在 QSizePolicy :: Minimum 中,将右侧小部件放在 QSizePolicy :: Preferred 中。在Qt Designer中,左侧面板较小,右侧面板水平放大。当我启动应用程序时,两个小部件具有相同的宽度并位于窗口的中心。
注意:
当我打开任何项目时,我会在" General Messages" 中收到此文本。
Warnings while parsing QML type information of /Users/denny/Qt/5.5/clang_64/qml:
<dump of /Users/denny/Qt/5.5/clang_64/qml>:1:24: Reading only version 1.1 parts.
<dump of /Users/denny/Qt/5.5/clang_64/qml>:10:5: Expected only Component and ModuleApi objects definitions.
可能是原因吗?
答案 0 :(得分:1)
问题仍然存在,但它解决了(现在)......
QApplication::setStyle("fusion");
我的应用程序不会使用Mac主题,但会使用Fusion主题......
注意:强>
图形更加丑陋,但它有效!
答案 1 :(得分:0)
QSizePolicy::Minimum
。这意味着这个小部件可以更大,但没有必要扩展它。QSizePolicy::Preferred
。这意味着如果有空间可以进一步使用它。将左侧面板小部件放在单个小部件中,将右侧面板小部件放在另一个小部件中,然后使用表单布局。表单布局通常为左右设置正确的大小策略。
答案 2 :(得分:0)
发生这种情况是因为不同的样式使用了不同的扩展策略。 例如,QFormLayout处理枚举QFormLayout :: FieldGrowthPolicy。
QFormLayout::FieldsStayAtSizeHint
-这是QMacStyle的默认设置。
QFormLayout::AllNonFixedFieldsGrow
-这是大多数样式的默认策略。
QFormLayout::ExpandingFieldsGrow
-这是Plastique的默认策略。