You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5程序运行显示Windows Vista风格而非Win10风格怎么解决?

解决PyQt5运行时界面样式老旧问题

问题核心是PyQt5默认未启用Windows 10的现代界面样式,只需在代码中添加样式设置即可解决:

方案1:使用Qt跨平台现代样式(Fusion)

Fusion是Qt官方的跨平台现代样式,在所有系统上都能呈现一致的简洁外观,修改代码如下:

import os
import sys
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import Qt


class UI(QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi(os.path.join(sys.path[0], 'untitled.ui'), self)


if __name__ == '__main__':
    # 启用高DPI缩放(可选,解决高分屏界面模糊问题)
    QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
    QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
    
    app = QApplication(sys.argv)
    # 设置Fusion现代样式
    app.setStyle('Fusion')
    
    ex = UI()
    ex.show()
    sys.exit(app.exec())

方案2:使用Windows原生现代样式

如果想要完全贴合Windows系统的原生外观,可以调用系统样式工厂创建对应样式:

import os
import sys
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication, QMainWindow, QStyleFactory
from PyQt5.QtCore import Qt


class UI(QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi(os.path.join(sys.path[0], 'untitled.ui'), self)


if __name__ == '__main__':
    QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
    QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
    
    app = QApplication(sys.argv)
    # 设置Windows原生样式(Win10及以上会自动适配系统现代外观)
    app.setStyle(QStyleFactory.create('WindowsVista'))
    
    ex = UI()
    ex.show()
    sys.exit(app.exec())

说明:Qt中没有单独的Windows10样式标识符,WindowsVista样式在Windows 10/11上会自动适配为系统的现代界面风格。若仍有显示问题,建议检查并升级到最新版本的PyQt5,旧版本可能存在样式适配缺陷。

内容的提问来源于stack exchange,提问作者Andrey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 23:05:31