Qt Designer的预览ui在python中运行时不一样

Posted

技术标签:

【中文标题】Qt Designer的预览ui在python中运行时不一样【英文标题】:Qt Designer's preview ui is not the same when it running in python 【发布时间】:2020-03-19 06:30:19 【问题描述】:

这是预览

这是在python中运行时的样子

【问题讨论】:

【参考方案1】:

Qt会根据环境变量等各种标志来处理启用的各种样式,而Qt Designer可能会默认使用一些样式,所以预览显示的样式可能与运行时的应用不同。

分析风格在我看来Qt Designer使用的是“融合”风格,所以解决方案是添加:

app.setStyle("fusion")

如果你想用 Qt Designer 中的其他样式来可视化你的设计,你必须执行:Form-> Preview in -> style


如果您想了解安装中可用的所有样式,可以运行以下命令:

from PySide2 import QtWidgets

print(QtWidgets.QStyleFactory.keys())

在我的情况下,我得到以下信息:

['Breeze', 'bb10dark', 'bb10bright', 'cleanlooks', 'gtk2', 'cde', 'motif', 'plastique', 'Oxygen', 'Windows', 'Fusion']

【讨论】:

我的代码是"app = QApplication([])",所以我需要添加一个新行"app.setStyle("fusion")",对吗? 你解决了我的问题,我真的很感激,还有没有更多的样式,因为我在预览选项中只找到了三个样式。 @Aiden 是的,你必须编译每种风格的插件(很多依赖于操作系统,在 Linux 的情况下有很多可用的)但有一个缺点:你必须安装 Qt并手动编译对于初学者来说通常是头疼的插件。 我讨厌编译。如果我想要更多风格,在 linux 上安装 Qt 是个好主意吗? @Aiden 不,我必须编译许多样式。但是你可以创建自己的风格,检查:doc.qt.io/qt-5/qtwidgets-widgets-styles-example.html

以上是关于Qt Designer的预览ui在python中运行时不一样的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 机器中将 Qt Designer(.ui) 文件转换为 python(.py) 可执行文件

pycharm中使用Qt Designer实现UI界面设计

使用 PySide2 开发 Maya 插件系列一:QT Designer 设计GUI, pyside-uic 把 .ui 文件转为 .py 文件

是否可以在 Qt Designer 中使用来自 Qt Designer 的 .ui 文件作为自定义小部件?

当我尝试加载图像时,Qt Designer 错误与 Python 抛出错误

QT通过 QT designer 可以生成 ui文件