Howto Call QML With PyQt4

本文将讲解如何在 PyQt4 程序中调用 QML。

QML 简介

QML 又称 Qt 元对象语言或 Qt 建模语言,是基于 JavaScript 的描述性语言,常用于设计用户界面。详细介绍见于 QML 维基百科

QML 示例

编辑 hello.qml,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
import QtQuick 1.0

Rectangle {
id: page
width: 500; height: 200
color: "lightgray"
Text {
id: helloText
text: "Hello QML & PyQt4"
font.pointSize: 24; font.bold: true
anchors.centerIn: parent
}
}

解析

第一行是 qml 脚本中约定俗成的。Rectangle 定义了一个 500 x 200 的矩形区域,其背景颜色为浅灰色。Text 中定义了一个文本字符串“Hello QML & PyQt4”,字体大小为24,黑体。

PyQt4 调用 QML

编辑 pyqt-qml.py,文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtDeclarative import QDeclarativeView

if __name__ == "__main__":
app = QApplication(sys.argv)

view = QDeclarativeView()
view.setSource(QUrl('hello.qml'))
view.setResizeMode(QDeclarativeView.SizeRootObjectToView)
view.show()

sys.exit(app.exec_())

运行 pyqt-qml.py,界面如下:

QML

附:截图中所显示的与文中的 QML 略有不同,截图代码见于 pyqt-qml