【问题标题】:Qt mac : How does the layout differs from other OSesQt mac:布局与其他操作系统有何不同
【发布时间】:2011-02-28 15:30:02
【问题描述】:

Qt 是一个很好的框架,它允许人们开发一些东西,它适用于 3 个主要操作系统。

但布局有时会出现一些差异:放置一些小部件的行为与在 windows 或 linux 中的行为不同。

你有没有观察到奇怪的行为?在哪些小部件上?你是如何纠正这个问题的?

感谢分享

【问题讨论】:

    标签: user-interface macos qt


    【解决方案1】:

    好吧,我现在看到的只有操作系统上的间距和边距不同,但它总是由每个操作系统 gui 指南完成的。此外(我不确定您是否熟悉 Mac OS X)最大的区别在于 QMainWindow 和菜单栏,它们在 Mac OS X 上始终位于屏幕顶部(而不是在 Windows 或 Linux 上的窗口顶部)。我从来不需要对 Qt 布局做任何“解决方法”

    【讨论】:

      【解决方案2】:

      如果您要设置按钮样式,我还建议您使用 QPushButton::setFlat(true)。如果您不这样做,则在 mac 中无法正确计算按钮的边距和位置,因为它希望周围有特殊的 mac 效果区域。您在 QLineEdit 中遇到了类似的问题,您需要进行方法调用以避免在 mac 中出现蓝色突出显示。

      Qt 4.6 中还有一个错误,您无法在 mac 中设置 QComboBox 样式(可以但结果很奇怪)。字体对于相同的系列大小具有不同的像素大小,因此,如果您正在做多平台应用程序,特别是当您有固定大小的元素并在其上带有文本时,请小心。

      除此之外,我不记得有任何其他重大差异。如果您正在做非常复杂的事情,您会遇到仅在 Mac 或 Windows 中发生的崩溃以及一些精美的绘图效果。通常崩溃与内部 Qt 代码有关,有些事情是错误的,但它们在 OS 上工作,你没有意识到问题,直到它在 mac 或 Linux 中崩溃。

      如果您在 mac 中使用 QGraphicsView,请小心该视图是否进入滚动区域。由于某种原因,Qt 有一个错误,有时当您滚动包含它的区域时,它会在窗口外绘制 QGraphicsView。

      【讨论】:

        猜你喜欢
        • 2019-04-09
        • 2015-10-27
        • 2017-12-06
        • 1970-01-01
        • 1970-01-01
        • 2011-11-17
        • 2011-01-02
        • 2015-04-11
        • 2012-07-26
        相关资源
        最近更新 更多