Отображение QML в пользовательском окне в PyQt6Python

Программы на Python
Anonymous
Отображение QML в пользовательском окне в PyQt6

Сообщение Anonymous »

Для приложения Qt 6.7, основанного на Python и QML, я пытаюсь отобразить пользовательское окно с закругленными границами и отобразить в нем свой QML-код. Мне удалось сделать первую часть, но я изо всех сил пытаюсь отобразить код QML в окне.
Я пытался использовать QQmlApplicationEngine для загрузки файла QML в мое окно, но это не помогло не работает.
Вот мой текущий код:
main.py:

Код: Выделить всё

from PySide6.QtWidgets import QApplication, QMainWindow, QWidget
from PySide6.QtCore import Qt
from PySide6.QtQml import QQmlApplicationEngine
import sys
from pathlib import Path

class MainWindow(QMainWindow):
def __init__(self):
super().__init__()

w = 1200
h = 800

self.resize(w, h)
self.setWindowFlag(Qt.FramelessWindowHint)
self.setAttribute(Qt.WA_TranslucentBackground)

self.round_widget = QWidget(self)
self.round_widget.resize(w, h)

self.round_widget.setStyleSheet(
"""
background: rgb(255, 255, 255);
border-radius: 10px;
"""
)

self.qml_engine = QQmlApplicationEngine()
qml_file = Path(__file__).resolve().parent / "main.qml"
self.qml_engine.load(qml_file)

if not self.qml_engine.rootObjects():
sys.exit(-1)

self.show()

if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()

sys.exit(app.exec())

main.qml:

Код: Выделить всё

import QtQuick
import QtQuick.Window

Item {
Rectangle {
anchors.fill: parent
color: "red"
}
}
Спасибо за помощь!

Подробнее здесь: https://stackoverflow.com/questions/790 ... w-in-pyqt6

Вернуться в «Python»