PySide2 + QML:QApplication:传递了无效的样式覆盖,忽略它
PySide2 + QML : QApplication: invalid style override passed, ignoring it
我正在使用 QML + PySide / Python 作为后端构建一个简单的应用程序。
我正在尝试使用 "Universal" qml 样式。我正在子类化 QApplication 并添加 -style Universal
参数:
class MyApp(QApplication):
def __init__(self, args):
qt_args = [args[0], '-style', 'Universal'] + args[1:]
super(MyApp, self).__init__(qt_args)
它可以工作(我的应用使用通用样式)但它会抛出以下警告:
QApplication: invalid style override passed, ignoring it.
Available styles: windowsvista, Windows, Fusion
PySide2 似乎无法获得标准的 QML 样式(通用/Material)
有人知道怎么处理吗?
谢谢。
解释:
“-style”参数有两个用途:
- 设置Qt Widgets的样式
- 设置 Qt Quick Controls 的样式。
因此,由于 QApplication 旨在处理 Qt Widgets,因此首先尝试验证 Qt Widgets 的样式是否存在,但在您的情况下,它通过发出您收到的警告而失败,然后尝试建立 Qt 的样式快速控制。
解决方案:
所以解决方案是找到另一种方法来避免混淆:
Environment variable: 通过QT_QUICK_CONTROLS_STYLE环境变量设置样式:
import os
os.environ["QT_QUICK_CONTROLS_STYLE"] = "Universal"
-
2.1 创建文件"qtquickcontrols2.conf",内容如下
; This file can be edited to change the style of the application
; See Styling Qt Quick Controls 2 in the documentation for details:
; http://doc.qt.io/qt-5/qtquickcontrols2-styles.html
[Controls]
Style=Material
2.2 将其添加到 qresource,
<RCC>
<qresource prefix="/">
<file>qtquickcontrols2.conf</file>
</qresource>
</RCC>
2.3 使用 pyside2-rcc resource.qrc -o resource_rc.py
或 rcc --generator python resource.qrc -o resource_rc.py
和
将 .qrc 编译为 .py
2.4 将其导入您的应用程序。
import resource_rc
我正在使用 QML + PySide / Python 作为后端构建一个简单的应用程序。
我正在尝试使用 "Universal" qml 样式。我正在子类化 QApplication 并添加 -style Universal
参数:
class MyApp(QApplication):
def __init__(self, args):
qt_args = [args[0], '-style', 'Universal'] + args[1:]
super(MyApp, self).__init__(qt_args)
它可以工作(我的应用使用通用样式)但它会抛出以下警告:
QApplication: invalid style override passed, ignoring it.
Available styles: windowsvista, Windows, Fusion
PySide2 似乎无法获得标准的 QML 样式(通用/Material)
有人知道怎么处理吗?
谢谢。
解释:
“-style”参数有两个用途:
- 设置Qt Widgets的样式
- 设置 Qt Quick Controls 的样式。
因此,由于 QApplication 旨在处理 Qt Widgets,因此首先尝试验证 Qt Widgets 的样式是否存在,但在您的情况下,它通过发出您收到的警告而失败,然后尝试建立 Qt 的样式快速控制。
解决方案:
所以解决方案是找到另一种方法来避免混淆:
Environment variable: 通过QT_QUICK_CONTROLS_STYLE环境变量设置样式:
import os os.environ["QT_QUICK_CONTROLS_STYLE"] = "Universal"
-
2.1 创建文件"qtquickcontrols2.conf",内容如下
; This file can be edited to change the style of the application ; See Styling Qt Quick Controls 2 in the documentation for details: ; http://doc.qt.io/qt-5/qtquickcontrols2-styles.html [Controls] Style=Material
2.2 将其添加到 qresource,
<RCC> <qresource prefix="/"> <file>qtquickcontrols2.conf</file> </qresource> </RCC>
2.3 使用
将 .qrc 编译为 .pypyside2-rcc resource.qrc -o resource_rc.py
或rcc --generator python resource.qrc -o resource_rc.py
和2.4 将其导入您的应用程序。
import resource_rc