PySide2学习总结(九)创建窗口

前言

在QtQuick中,APP具有两种启动模式:
一是前面用过的QQuickView + Item;
二是QQmlApplicationEngine + Window。
相对于QQuickView ,QQmlApplicationEngine加载以Window为根对象的QML文档,QML文档则拥有窗口的完整控制权,可以直接设置标题、窗口尺寸等属性。
更详细的介绍可以查看官方文档:
QQuickView Class
QQmlApplicationEngine Class

正文

QQuickView + Item

使用QQuickView显示QML文档,在加载元素时会自动创建窗口。
编程示例

QQmlApplicationEngine + Window

QQmlApplicationEngine不会自动创建根窗口,只能加载具有Window或ApplicationWindow作为根组件的QML文档。
Window对象用于创建一个与操作系统相关的顶层窗口,包含了如Text, Rectangle, Image等元素。
ApplicationWindow是Window的派生类,使用它需要使用下面的语句来引入Controls模块:

import QtQuick .Controls 1.2

ApplicationWindow与QMainWindow类似,有menuBar, toolBar, statusBar属性,分别用来设置菜单、工具栏、状态栏,还有contentltem,可以用来设置内容元素的尺寸属性。

编程示例

代码文件目录如图:
PySide2学习总结(九)创建窗口_第1张图片
main.py代码如下:

import sys
from PySide2.QtWidgets import QApplication
from PySide2.QtQml import QQmlApplicationEngine


if __name__ == "__main__":

    app = QApplication(sys.argv)
    engine = QQmlApplicationEngine("qml/main.qml")
    print(engine)
    app.exec_()

main.qml代码如下:

import QtQuick 2.7
import QtQuick.Window 2.3
import QtQuick.Controls 2.3


ApplicationWindow {
    id: _window

    // 窗口标题设置
    title: "Test App"
    // 窗口大小设置
    width: 500
    height: 300

    // Window默认不可见,需要进行设置为可见
    visible: true
}

运行代码效果如图:

PySide2学习总结(九)创建窗口_第2张图片

你可能感兴趣的:(Python,PySide2学习总结)