Howto Call QML With PyQt4

Author Avatar
Mutse Young 6月 15, 2013

本文将讲解如何在 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