Qt在Mac上的布局与其他操作系统有何不同?

3

Qt是一个不错的框架,可以让人们只开发一次就可以在三个主要的操作系统上运行。

但有时候,布局会有所不同:放置某些小部件的行为与 Windows 或 Linux 中的行为不同。

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

谢谢分享。

2个回答

0

目前我只看到操作系统之间的差异在于间距和边距,但这通常是由每个操作系统的GUI指南决定的。此外(我不确定您是否熟悉Mac OS X),最大的区别在于QMainWindow和菜单栏,在Mac OS X上始终位于屏幕顶部(而不是在Windows或Linux上的窗口顶部)。我从未需要使用Qt布局进行任何“解决方法”。


0
如果您要样式化按钮,我建议您使用QPushButton :: setFlat(true)。如果您不这样做,则在Mac中,按钮的边距和位置不会正确计算,因为它期望周围有特殊的Mac效果区域。您在QLineEdit中也有类似的问题,需要进行方法调用以避免Mac中的蓝色高亮显示。
此外,在Qt 4.6中还存在一个错误,您无法在Mac中样式化QComboBox(您可以,但结果非常奇怪)。对于同一家族大小,字体具有不同的像素大小,因此请注意,特别是当您具有带有文本的固定大小元素的多平台应用程序时。
除此之外,我不记得还有其他大的差异了。如果您正在进行非常复杂的操作,则可能会发生仅在Mac或Windows上发生的崩溃和一些花哨的绘图效果。通常,崩溃与内部Qt代码相关,有些事情是错误的,但它们在一个操作系统上工作,并且直到在Mac或Linux中崩溃才意识到问题。
如果您在Mac中使用QGraphicsView,请注意,如果该视图位于滚动区域中,则要小心。由于某种原因,Qt存在一个错误,有时当您滚动包含它的区域时,它会在窗口外绘制QGraphicsView。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接