PyQt有不少模块,使用比较频繁的就是QtCore和QtGui了
- QtCore: 是包含了非GUI的核心类,包括qt的信号和槽事件循环,共享内存,用户设置等等。
- QtGui: 包含了绝大部分的GUI类。
让我们来看看如何来编写一个GUI程序吧
# 导入QtGui模块 import PyQt4.QtGui as QtGui if __name__ == "__main__": # 导入sys模块,你也可以在一开始就导入 import sys # 创建一个QApplication对象,它接收的是一个列表参数 # 通常是sys.argv app = QtGui.QApplication(sys.argv) # 创建一个QLabel控件 label = QtGui.QLabel("Hello PyQt!") # 显示QLabel控件 label.show() # 进入主循环,直到程序退出 sys.exit(app.exec_())
执行后,你会看到

我们把
label = QtGui.QLabel("Hello PyQt!")
改成
label = QtGui.QLabel("Hello \ PyQt!
!")
你会看到

可见,你可以使用HTML的样式来使得你的程序更丰富多彩
接下来我们来看一下链接的建立,我们创建一个由一个按钮构成的程序,当你点击这个按钮时程序就会退出
from PyQt4 import QtCore from PyQt4 import QtGui if __name__ == "__main__": import sys app = QtGui.QApplication( sys.argv ) # 创建一个QPushButton控件 button = QtGui.QPushButton( "Quit" ) # 创建QPushButton和app的连接 QtCore.QObject.connect( button, QtCore.SIGNAL( "clicked()" ), app, QtCore.SLOT( "quit()" ) ) # 显示QPushButton控件 button.show() sys.exit( app.exec_() )
当你单击Quit按钮时,它会发射一个"clicked()"信号,信号可以和槽(函数)进行链接,以便信号发射时,槽会自动执行
链接的创建也可以这样来写
button.clicked.connect( app.quit )
这样比上面传统的清晰、简洁多了
接下来我们来看看如何布局我们的窗口控件。
我们创建一个由:QSpinBox、QSlider和QWidget组成的窗口。当你拖动QSlider时QSpinBox的数值随之变化,当你改变QSpinBox的数值时,QSlider也随之变化。
from PyQt4 import QtCore from PyQt4 import QtGui if __name__ == "__main__": import sys app = QtGui.QApplication( sys.argv ) # 创建QWidget,也就是我们的窗口 window = QtGui.QWidget() # 设置窗口的名称 window.setWindowTitle( "Enter Your Age" ) # 创建spinBox spinBox = QtGui.QSpinBox() # 创建QSlider,我们要的是横向的, # 使用QtCore.Qt.Horizontal来定义 slider = QtGui.QSlider( QtCore.Qt.Horizontal ) spinBox.setRange( 0, 130 ) # 设置数值范围 slider.setRange( 0, 130 ) # 设置数值范围 # 创建连接 spinBox.valueChanged.connect( slider.setValue ) slider.valueChanged.connect( spinBox.setValue ) # 设置一个数值 spinBox.setValue( 35 ) # 创建QHBoxLayout布局 layout = QtGui.QHBoxLayout() # 将控件加入到布局 layout.addWidget( spinBox ) layout.addWidget( slider ) # 将窗口的布局设置为layout window.setLayout( layout ) window.show() sys.exit( app.exec_() )

根据C++ GUI Qt4编程(第二版)第一章编写的,希望对你有帮助