Pyside6和QML显示一个窗口
以下是使用 PySide6 创建一个简单窗口的示例代码:
import sys
from PySide6.QtWidgets import QApplication, QMainWindow
# 创建一个自定义的主窗口类,继承自 QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setWindowTitle("我的窗口") # 设置窗口标题
self.setGeometry(100, 100, 400, 300) # 设置窗口的位置和大小
if __name__ == "__main__":
app = QApplication(sys.argv) # 创建应用程序对象
window = MainWindow() # 创建主窗口对象
window.show() # 显示窗口
sys.exit(app.exec()) # 进入应用程序的主循环,直到应用程序退出
在上述代码中,我们首先定义了一个继承自 QMainWindow 的类 MainWindow ,在其 init 方法中设置了窗口的标题、位置和大小。然后在 if name == "main": 部分创建应用程序对象和窗口对象,并显示窗口,最后启动应用程序的主循环。
要在 PySide6 中结合 QML 代码,您需要使用 QQmlApplicationEngine 。以下是一个简单的示例:
首先,创建一个 QML 文件(例如 main.qml):
import QtQuick 2.15
import QtQuick.Controls 2.15
ApplicationWindow {
visible: true
width: 640
height: 480
title: "QML 窗口"
Button {
text: "点击我"
onClicked: {
console.log("按钮被点击")
}
}
}
然后,在 Python 代码中加载这个 QML 文件:
import sys
from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngine
if __name__ == "__main__":
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.load("main.qml") # 加载 QML 文件
if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec())
运行 Python 代码,将会显示一个由 QML 定义的窗口,其中包含一个按钮,点击按钮会在控制台输出信息。