0%

PyQt4--《一》基础入门及介绍

前面有用PyQt写过一个桌面程序,但代码结构及条理并不清晰,自此开始从头整理一遍PyQt4的相关学习教程。

本文是对TutorialsPoint上的教程的翻译。转自http://qixinbo.info/

概述

官网
PyQt是一个GUI控件工具箱,是Qt的Python接口。
PyQt有两个主要版本:PyQt 4.x和PyQt 5.x,两者不兼容,且前者基于Python 2和Python 3,后者仅基于Python 3。

Linux下载安装:

1
2
3
4
sudo apt-get install python-qt4
or
sudo apt-get install pyqt5-dev-tools

windows下载安装:

1
http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.12.1/PyQt4_gpl_win-4.12.1.zip

PyQt4由以下Modules组成:
QtCore、QtGui、QtNetwork、QtXml、QtSvg、QtOpenGL、QtSql

  • QtCore包含非GUI的核心功能,用来处理时间、文件和目录、数据类型、流、URL、MIME类型、线程和进程。
  • QtGui包含图形组件及相关类,比如按钮、窗口、状态栏、工具栏、滑块、位图、颜色、字体等。
  • QtNetwork包含网络编程的相关类,比如用于TCP/IP和UDP服务端和客户端的编程。
  • QtXml包含处理XML文件的类,提供了用于SAX和DOM这些API的实现。
  • QtSvg提供了显示SVG文件内容的类。
  • QtOpenGL使用OpenGL库来处理2D和3D的图像,将Qt GUI库和OpenGL库无缝链接起来。
  • QtSql包含处理数据库的类。

Hello World

使用PyQt创建”Hello World”的步骤如下:

  • 1.导入QtGui模块
  • 2.创建一个应用对象app
  • 3.创建一个QWidget对象w来创建最顶层的窗口,在上面添加一个QLabel对象b
  • 4.设置label的标题为“Hello World”
  • 5.通过setGeometry()方法定义窗口的尺寸和位置
  • 6.通过app.exec()方法来进入应用对象的主体

代码如下:

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

import sys
from PyQt4 import QtGui #基本的GUI组件都存放在QtGui这个模块

def window():
app = QtGui.QApplication(sys.argv)#每个Pyqt的程序都必须创建一个application对象,application在 QtGui 模块中,sys.argv 参数是命令行中的一组参数。
w = QtGui.QWidget()#创建窗口对象,QWidget窗口组件是PyQt4中所有用户界面对象的基类,这里直接使用QWidget默认的构造。
w.setGeometry(100,100,200,50)
w.setWindowTitle('test')

b = QtGui.QLabel(w)#添加一个QLabel对象
b.setText('hello world')
w.show()
sys.exit(app.exec_())#app.exec_()其实就是QApplication的方法,原来这个exec_()方法的作用是“进入程序的主循环直到exit()被调用”,如果没有这个方法,运行的时候窗口会闪退。
if __name__ == '__main__':
window()