【发布时间】:2011-02-28 15:30:02
【问题描述】:
Qt 是一个很好的框架,它允许人们开发一些东西,它适用于 3 个主要操作系统。
但布局有时会出现一些差异:放置一些小部件的行为与在 windows 或 linux 中的行为不同。
你有没有观察到奇怪的行为?在哪些小部件上?你是如何纠正这个问题的?
感谢分享
【问题讨论】:
标签: user-interface macos qt
Qt 是一个很好的框架,它允许人们开发一些东西,它适用于 3 个主要操作系统。
但布局有时会出现一些差异:放置一些小部件的行为与在 windows 或 linux 中的行为不同。
你有没有观察到奇怪的行为?在哪些小部件上?你是如何纠正这个问题的?
感谢分享
【问题讨论】:
标签: user-interface macos qt
好吧,我现在看到的只有操作系统上的间距和边距不同,但它总是由每个操作系统 gui 指南完成的。此外(我不确定您是否熟悉 Mac OS X)最大的区别在于 QMainWindow 和菜单栏,它们在 Mac OS X 上始终位于屏幕顶部(而不是在 Windows 或 Linux 上的窗口顶部)。我从来不需要对 Qt 布局做任何“解决方法”
【讨论】:
如果您要设置按钮样式,我还建议您使用 QPushButton::setFlat(true)。如果您不这样做,则在 mac 中无法正确计算按钮的边距和位置,因为它希望周围有特殊的 mac 效果区域。您在 QLineEdit 中遇到了类似的问题,您需要进行方法调用以避免在 mac 中出现蓝色突出显示。
Qt 4.6 中还有一个错误,您无法在 mac 中设置 QComboBox 样式(可以但结果很奇怪)。字体对于相同的系列大小具有不同的像素大小,因此,如果您正在做多平台应用程序,特别是当您有固定大小的元素并在其上带有文本时,请小心。
除此之外,我不记得有任何其他重大差异。如果您正在做非常复杂的事情,您会遇到仅在 Mac 或 Windows 中发生的崩溃以及一些精美的绘图效果。通常崩溃与内部 Qt 代码有关,有些事情是错误的,但它们在 OS 上工作,你没有意识到问题,直到它在 mac 或 Linux 中崩溃。
如果您在 mac 中使用 QGraphicsView,请小心该视图是否进入滚动区域。由于某种原因,Qt 有一个错误,有时当您滚动包含它的区域时,它会在窗口外绘制 QGraphicsView。
【讨论】: