PyQt4-(7) Tutorial 5

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# PyQt tutorial 5
# Modified by 屈武斌 [quwubin AT gmail.com]
# Blog: http://quwubin.cnblogs.com/
# 这一节内容多了一点,添加了一个滑块和数字显示
# 并演示了列方式布局
import sys
from PyQt4 import QtCore, QtGui

class MyWidget(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
quit = QtGui.QPushButton("Quit")
quit.setFont(QtGui.QFont("Times", 18, QtGui.QFont.Bold))
lcd = QtGui.QLCDNumber(2)
# lcd是一个QLCDNumber,一个可以按像LCD的方式显示数字的窗口部件。
# 这个实例被设置为显示两个数字
slider = QtGui.QSlider(QtCore.Qt.Horizontal)
slider.setRange(0, 99)
slider.setValue(0)
# QSlider是一个经典的滑块,用户可以通过在拖动一个东西在一定范围内调节一个
# 整数数值的方式来使用这个窗口部件。这里我们创建了一个水平的滑块,设置它的
# 范围是0~99(包括0和99,参见QSlider::setRange()文档)并且它的初始值是0。
self.connect(quit, QtCore.SIGNAL("clicked()"),
QtGui.qApp, QtCore.SLOT("quit()"))
self.connect(slider, QtCore.SIGNAL("valueChanged(int)"),
lcd, QtCore.SLOT("display(int)"))
#这里我们是用了信号/槽机制把滑块的valueChanged()信号和lcd数字的display()槽连接起来了。
#这一行在两个Qt对象(直接或间接继承QObject对象的对象)中建立了一种单向的连接。
#每一个Qt对象都有signals(信号--发送消息)和slots(槽--接收消息)。所有窗口
#部件都是Qt对象。它们继承QWidget,而QWidget继承QObject。第一个对象
#“slider”发送一个信号,以 SIGNAL(valueChanged(int) 方式发送一个
#valueChanged(int) 信号,并且带有参数,该参数随之一起发送出去;第二个对象
#“lcd”得到这个信号并作出响应,响应通过 SLOT(display(int)) 方式到达
# lcd->display(int),并传入一个参数,该参数由信号中发出的参数决定,
# 然后执行该函数定义的功能。
layout = QtGui.QVBoxLayout()
# 创建列方式布局
layout.addWidget(quit);
# 最上面放Quit按钮
layout.addWidget(lcd);
# 中间放lcd数字显示
layout.addWidget(slider);
# 最下面放置滑块
self.setLayout(layout);
# 显示布局

app = QtGui.QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())
____________________________
屈武斌
Email: quwubin AT gmail.com
Blog: http://quwubin.cnblogs.com/
屈武斌
Email: quwubin AT gmail.com
Blog: http://quwubin.cnblogs.com/
浙公网安备 33010602011771号