码迷,mamicode.com
首页 > 其他好文 > 详细

ZetCode PyQt4 tutorial widgets I

时间:2015-10-02 07:53:58      阅读:371      评论:0      收藏:0      [点我收藏+]

标签:

#!/usr/bin/python
# -*- coding: utf-8 -*-

"""
ZetCode PyQt4 tutorial 

In this example, a QtGui.QCheckBox widget
is used to toggle the title of a window.

author: Jan Bodnar
website: zetcode.com 
last edited: September 2011
"""

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):
    
    def __init__(self):
        super(Example, self).__init__()
        
        self.initUI()
        
    def initUI(self):      

        # This is a QtGui.QCheckBox constructor.
        cb = QtGui.QCheckBox(Show title, self)
        cb.move(20, 20)
        # We have set the window title, so we must also check the checkbox. By default, the window title is not set and the checkbox is unchecked.
        cb.toggle()
        # We connect the user defined changeTitle() method to the stateChanged signal. The changeTitle() method will toggle the window title.
        cb.stateChanged.connect(self.changeTitle)
        
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle(QtGui.QCheckBox)
        self.show()
        
    # The state of the widget is given to the changeTitle() method in the state variable. If the widget is checked, we set a title of the window. Otherwise, we set an empty string to the titlebar.
    def changeTitle(self, state):
      
        if state == QtCore.Qt.Checked:
            self.setWindowTitle(QtGui.QCheckBox)
        else:
            self.setWindowTitle(‘‘)
        
def main():
    
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == __main__:
    main()

--------------------------------------------------------------------------------

#!/usr/bin/python
# -*- coding: utf-8 -*-

"""
ZetCode PyQt4 tutorial 

In this example, we create three toggle buttons.
They will control the background color of a 
QtGui.QFrame. 

author: Jan Bodnar
website: zetcode.com 
last edited: September 2011
"""

import sys
from PyQt4 import QtGui

class Example(QtGui.QWidget):
    
    def __init__(self):
        super(Example, self).__init__()
        
        self.initUI()
        
        
    def initUI(self):      

        # This is the initial, black colour value.
        self.col = QtGui.QColor(0, 0, 0)       

        # To create a toggle button, we create a QtGui.QPushButton and make it checkable by calling the setCheckable() method.
        redb = QtGui.QPushButton(Red, self)
        redb.setCheckable(True)
        redb.move(10, 10)

        # We connect a clicked signal to our user defined method. We use the clicked signal that operates with a Boolean value.
        redb.clicked[bool].connect(self.setColor)

        greenb = QtGui.QPushButton(Green, self)
        greenb.setCheckable(True)
        greenb.move(10, 60)

        greenb.clicked[bool].connect(self.setColor)

        blueb = QtGui.QPushButton(Blue, self)
        blueb.setCheckable(True)
        blueb.move(10, 110)

        blueb.clicked[bool].connect(self.setColor)

        self.square = QtGui.QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget { background-color: %s }" %  
            self.col.name())
        
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle(Toggle button)
        self.show()
        
        
    def setColor(self, pressed):
        
        # We get the button which was toggled.
        source = self.sender()
        
        if pressed:
            val = 255
        else: val = 0
                        
        # In case it is a red button, we update the red part of the colour accordingly.
        if source.text() == "Red":
            self.col.setRed(val)                
        elif source.text() == "Green":
            self.col.setGreen(val)             
        else:
            self.col.setBlue(val) 
            
        # We use style sheets to change the background colour.
        self.square.setStyleSheet("QFrame { background-color: %s }" %
            self.col.name())  
            
        
def main():
    
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == __main__:
    main()    

--------------------------------------------------------------------------------

#!/usr/bin/python
# -*- coding: utf-8 -*-

"""
ZetCode PyQt4 tutorial 

This example shows a QtGui.QSlider widget.

author: Jan Bodnar
website: zetcode.com 
last edited: September 2011
"""

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):
    
    def __init__(self):
        super(Example, self).__init__()
        
        self.initUI()
        
    def initUI(self):      

        # Here we create a horizontal QtGui.QSlider.
        sld = QtGui.QSlider(QtCore.Qt.Horizontal, self)
        sld.setFocusPolicy(QtCore.Qt.NoFocus)
        sld.setGeometry(30, 40, 100, 30)
        # We connect the valueChanged signal to the user defined changeValue() method.
        sld.valueChanged[int].connect(self.changeValue)
        
        self.label = QtGui.QLabel(self)
        # We create a QtGui.QLabel widget and set an initial mute image to it. 
        self.label.setPixmap(QtGui.QPixmap(mute.png))
        self.label.setGeometry(160, 40, 80, 30)
        
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle(QtGui.QSlider)
        self.show()
        
    def changeValue(self, value):

        # Based on the value of the slider, we set an image to the label. In the above code, we set a mute.png image to the label if the slider is equal to zero
        if value == 0:
            self.label.setPixmap(QtGui.QPixmap(mute.png))
        elif value > 0 and value <= 30:
            self.label.setPixmap(QtGui.QPixmap(min.png))
        elif value > 30 and value < 80:
            self.label.setPixmap(QtGui.QPixmap(med.png))
        else:
            self.label.setPixmap(QtGui.QPixmap(max.png))
        
def main():
    
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == __main__:
    main()    

--------------------------------------------------------------------------------

#!/usr/bin/python
# -*- coding: utf-8 -*-

"""
ZetCode PyQt4 tutorial 

This example shows a QtGui.QProgressBar widget.

author: Jan Bodnar
website: zetcode.com 
last edited: September 2011
"""

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):
    
    def __init__(self):
        super(Example, self).__init__()
        
        self.initUI()
        
    def initUI(self):      

        # This is a QtGui.QProgressBar constructor.
        self.pbar = QtGui.QProgressBar(self)
        self.pbar.setGeometry(30, 40, 200, 25)

        self.btn = QtGui.QPushButton(Start, self)
        self.btn.move(40, 80)
        self.btn.clicked.connect(self.doAction)

        # To activate the progress bar, we use a timer object. 
        self.timer = QtCore.QBasicTimer()
        self.step = 0
        
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle(QtGui.QProgressBar)
        self.show()
        
    # Each QtCore.QObject and its descendants have a timerEvent() event handler. In order to react to timer events, we reimplement the event handler.
    def timerEvent(self, e):
      
        if self.step >= 100:
        
            self.timer.stop()
            self.btn.setText(Finished)
            return
            
        self.step = self.step + 1
        self.pbar.setValue(self.step)

    # Inside the doAction() method, we start and stop the timer.
    def doAction(self):
      
        if self.timer.isActive():
            self.timer.stop()
            self.btn.setText(Start)
            
        else:
            # To launch a timer event, we call its start() method. This method has two parameters: the timeout and the object which will receive the events.
            self.timer.start(100, self)
            self.btn.setText(Stop)
        
def main():
    
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == __main__:
    main()    

--------------------------------------------------------------------------------

#!/usr/bin/python
# -*- coding: utf-8 -*-

"""
ZetCode PyQt4 tutorial 

This example shows a QtGui.QCalendarWidget widget.

author: Jan Bodnar
website: zetcode.com 
last edited: September 2011
"""

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):
    
    def __init__(self):
        super(Example, self).__init__()
        
        self.initUI()
    
    
    def initUI(self):      

        # We construct a calendar widget.
        cal = QtGui.QCalendarWidget(self)
        cal.setGridVisible(True)
        cal.move(20, 20)
        # If we select a date from the widget, a clicked[QtCore.QDate] signal is emitted. We connect this signal to the user defined showDate() method.
        cal.clicked[QtCore.QDate].connect(self.showDate)
        
        self.lbl = QtGui.QLabel(self)
        date = cal.selectedDate()
        self.lbl.setText(date.toString())
        self.lbl.move(130, 260)
        
        self.setGeometry(300, 300, 350, 300)
        self.setWindowTitle(Calendar)
        self.show()
        
    # We retrieve the selected date by calling the selectedDate() method. Then we transform the date object into string and set it to the label widget.
    def showDate(self, date):     
    
        self.lbl.setText(date.toString())
    
    
def main():
    
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == __main__:
    main()

 

ZetCode PyQt4 tutorial widgets I

标签:

原文地址:http://www.cnblogs.com/zengjfgit/p/4851871.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!