如何在PyQt5中更改样式



我正在使用PyQt编写一个Qt5应用程序。我想了解如何改变整个应用程序的样式。

旧的Qt4调用如下:

app = QApplication(sys.argv)
app.setStyle(QStyleFactory.create('Cleanlooks'))

和这里建议的方法什么也不做

它们被弃用了吗?https://blog.qt.io/blog/2012/10/30/cleaning-up-styles-in-qt5-and-adding-fusion/

谢谢!

可能是Cleanlooks在您的系统上不再可用。通过QStyleFactory.keys(),您可以询问系统上可用的样式。在Ubuntu 16.04和pyqt5上,我只得到:

['Windows', 'GTK+', 'Fusion']
编辑:

在这里你可以找到qstyleplugin

包含6个额外的样式,你必须自己编译

编辑:
  • 在ubuntu 16.04和python3.5上,我通过在QT5上安装styleplugins并从源代码编译pyqt5来使其工作:

    install QT 5.7 by onlineinstaller

    在安装目录搜索qmake,在我的情况下/opt/Qt/5.7/gcc_64/bin/qmake

    下载qtstyleplugin到任意目录git clone https://code.qt.io/qt/qtstyleplugins.git并安装:

    cd qtstyleplugins
    /opt/Qt/5.7/gcc_64/bin/qmake # the qmake from the fresh installation
    make
    make install
    

    现在在/opt/Qt/5.7/gcc_64/plugins/中有一个文件夹" styles "包含了额外的样式。

    下载sip-source,编译并安装

    下载pyqt5-source,编译并安装它,在步骤python3 configure.py中,通过--qmake -选项提供QT5-Installation中的qmake,并在输出中查找缺少的依赖项。

    现在可以使用以下样式:

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

    i got an sip-error:

    RuntimeError: the sip module implements API v11.0 to v11.2 but the PyQt5.QtCore module requires API v11.3
    

    要防止它,请在安装sip之前运行sudo apt-get purge python3-sip,如下所示

    相关内容

    • 没有找到相关文章

    最新更新