zoukankan      html  css  js  c++  java
  • ZetCode PyQt4 tutorial widgets I

    #!/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()
  • 相关阅读:
    linux下mysql忘记密码
    ORACLE 锁表处理,解锁释放session
    二.hadoop环境搭建
    并行与并发的理解
    PgSQl临时表的创建
    UNION types numeric and text cannot be matched
    Excel 自定义关闭按钮
    Excel关闭事件
    VBA 获得绝对地址控制焦点的设置
    Excel TargetRange.Validation为空的
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/4851871.html
Copyright © 2011-2022 走看看