# -*- coding: cp936 -*-
# -*- coding: cp936 -*-
import sys
from PyQt4 import QtCore, QtGui #导入模块
app = QtGui.QApplication(sys.argv) #创建一个application对象 Python脚本可以通过shell运行,这样我们就可以对程序的启动进行控制。
window = QtGui.QWidget() #QWidget是PyQt4中所有用户接口对象的基类 创建窗口
window.resize(250, 150) #resize()方法调整widget的大小,在这里我们设定宽度为250px,高度为150px。
window.setWindowTitle(U'你好PYQT') #setWindowTitle()方法设置了窗口的title,title在titlebar中显示。
window.setWindowIcon(QtGui.QIcon('1.bmp')) #我们需要首先创建一个 QIcon对象,而QIcon接受一个参数指明图标的路径。
screen = QtGui.QDesktopWidget().screenGeometry() #窗口居中显示 获得显示器的分辨率。
size = window.geometry() #窗口居中显示 获得QWidget的大小。
window.move((screen.width()-size.width())/2, (screen.height()-size.height())/2) #窗口居中显示 将窗口移动到屏幕*。
quit = QtGui.QPushButton('Close', window) #创建一个按钮
quit.setGeometry(10, 10, 60, 35) #设置按钮大小
window.connect(quit, QtCore.SIGNAL('clicked()'),QtGui.qApp, QtCore.SLOT('quit()')) #响应事件消息
#正如前面所说,PyQt4的事件处理时间里在信号(signals)和槽(slots)机制上的。如果我们点击了按钮,就发射了信号clicked()方法。槽可以是PyQt槽,
# 也可以是任何python中可调用的方法。通过使用QtCore.QObject.connect()方法将信号和槽链接起来。在我们的例子中,使用的槽是PyQt中预先定义的quit()槽。
# 就好象sender和receiver一样,在两个对象之间进行交流。在上面的例子里,sender就是按钮,receiver就是application对象。
spinBox = QtGui.QSpinBox() #创建对象
slider = QtGui.QSlider(QtCore.Qt.Horizontal) #创建对象
spinBox.setRange(0, 130) #最小值 最大值
slider.setRange(0, 130) #最小值 最大值
QtCore.QObject.connect(spinBox, QtCore.SIGNAL("valueChanged(int)"),
slider, QtCore.SLOT("setValue(int)"))
#函数重载 (发件人,信号,方法,类型)
QtCore.QObject.connect(slider, QtCore.SIGNAL("valueChanged(int)"),
spinBox, QtCore.SLOT("setValue(int)"))
spinBox.setValue(35) #初始化值
layout = QtGui.QHBoxLayout() #创建布局
layout.addWidget(spinBox) #添加控件
layout.addWidget(slider)#添加控件
window.setLayout(layout)
window.show() #调用show()方法将窗口显示出来。
sys.exit(app.exec_()) #最后,就会进入application的事件循环。事件处理就从这里开始,循环不断的从窗口接受需要处理的事件
如图: