4

我有一个 qt quick pyside 应用程序。我之前有一个问题,但现在有另一个问题。只是出现一个空窗口,然后在应用程序窗口中我看到下面的消息。虽然我有另一个用 c++ 编写的 qt quick 应用程序和显示没问题,显示这条信息!,这个应用在python(pyside6)

我使用 Qt 6.0.2、Python 3.9.2、Qt Creator 4.14.1 和 Pyside6

Failed to create vertex shader: Error 0x80070057: The parameter is incorrect.
Failed to build graphics pipeline state

* main.qml

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15

Window {
    id:mainWindow
    width: 1000
    height: 580
    visible: true
    title: qsTr("JooyaTrader")

    Rectangle{

        width: 152
        height: 62
        anchors.fill: parent
        color: "red"
    }
}

主文件

import sys,os
from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngine
import PySide6

if __name__ == "__main__":
    app = QGuiApplication(sys.argv)
    engine = QQmlApplicationEngine()
    engine.load(os.path.join(os.path.dirname(__file__), "main.qml"))
    if not engine.rootObjects():
        sys.exit(-1)
    sys.exit(app.exec_())
4

1 回答 1

5

问题是由于 Qt Quick 用于渲染的后端不适用于您的情况,或者是因为缺少库或版本不符合 Qt 的预期。一种解决方案是在“软件”中设置 QT_QUICK_BACKEND,使渲染完成 Qt Quick 2D Renderer:

os.environ["QT_QUICK_BACKEND"] = "software"

app = QGuiApplication(sys.argv)

有关更多信息,请阅读场景图适应

于 2021-03-07T05:13:50.140 回答