zoukankan      html  css  js  c++  java
  • 读Pyqt4教程,带你入门Pyqt4 _006

    窗口组件是应用程序的基本构建块。PyQt4编程工具包拥有范围广泛的各种窗口组件。按钮、选择框、滑块、列表框等等,程序员工作所需要的一切。在教程的这部分中,我们将介绍一些有用的窗口组件。

    QCheckBox

    QCheckBox (复选框) 是一个由两种状态的窗口组件。 OnOff 。他是一个带标签的框。每段一个复选框被选中和或者清楚时,都将发射信号 stateChanged()

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    # checkbox.py
    
    import sys
    from PyQt4 import QtGui
    from PyQt4 import QtCore
    
    
    class Example(QtGui.QWidget):
    
        def __init__(self):
            super(Example, self).__init__()
    
            self.initUI()
    
        def initUI(self):
    
            self.setGeometry(300, 300, 250, 150)
            self.setWindowTitle('Checkbox')
    
            self.cb = QtGui.QCheckBox('Show title', self)
            self.cb.setFocusPolicy(QtCore.Qt.NoFocus)
            self.cb.move(10, 10)
            self.cb.toggle()
            self.connect(self.cb, QtCore.SIGNAL('stateChanged(int)'),
                self.changeTitle)
    
        def changeTitle(self, value):
    
            if self.cb.isChecked():
                self.setWindowTitle('Checkbox')
            else:
                self.setWindowTitle('')
    
    
    if __name__ == '__main__':
    
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        ex.show()
        app.exec_()

    在我们的例子中,我们将创建一个复选框来切换窗口标题。

    self.cb = QtGui.QCheckBox('Show title', self)

    构建 QCheckBox

    self.cb.setFocusPolicy(QtCore.Qt.NoFocus)

    禁用 QCheckBox 的焦点。获由焦点的 QCheckBox 可以通过空格选择或者取消选择。

    self.cb.toggle()

    设置窗口标题,必须选中复选框。默认情况下,不设置窗口标题,复选框设为未选择。

    self.connect(self.cb, QtCore.SIGNAL('stateChanged(int)'), self.changeTitle)

    连接用户定义的 changeTitle()stateChanged() 信号。 changeTitle() 方法将切换窗口标题。

    切换按钮

    PyQt4没有切换按钮的窗口组件,为了创建切换按钮,我们使用特殊模式的 QPushButton 。切换按钮是指一个两种状态的按钮,按下和非按下。通过点击切换两种状态。在某种状态下来这种方式很合适。

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    # togglebutton.py
    
    import sys
    from PyQt4 import QtGui
    from PyQt4 import QtCore
    
    
    class Example(QtGui.QWidget):
    
        def __init__(self):
            super(Example, self).__init__()
    
            self.initUI()
    
        def initUI(self):
    
            self.color = QtGui.QColor(0, 0, 0)
    
            self.red = QtGui.QPushButton('Red', self)
            self.red.setCheckable(True)
            self.red.move(10, 10)
    
            self.connect(self.red, QtCore.SIGNAL('clicked()'), self.setColor)
    
            self.green = QtGui.QPushButton('Green', self)
            self.green.setCheckable(True)
            self.green.move(10, 60)
    
            self.connect(self.green, QtCore.SIGNAL('clicked()'), self.setColor)
    
            self.blue = QtGui.QPushButton('Blue', self)
            self.blue.setCheckable(True)
            self.blue.move(10, 110)
    
            self.connect(self.blue, QtCore.SIGNAL('clicked()'), self.setColor)
    
            self.square = QtGui.QWidget(self)
            self.square.setGeometry(150, 20, 100, 100)
            self.square.setStyleSheet("QWidget { background-color: %s }" %
                self.color.name())
    
            self.setWindowTitle('ToggleButton')
            self.setGeometry(300, 300, 280, 170)
    
    
        def setColor(self):
    
            source = self.sender()
    
            if source.text() == "Red":
                if self.red.isChecked():
                    self.color.setRed(255)
                else: self.color.setRed(0)
    
            elif source.text() == "Green":
                if self.green.isChecked():
                    self.color.setGreen(255)
                else: self.color.setGreen(0)
    
            else:
                if self.blue.isChecked():
                    self.color.setBlue(255)
                else: self.color.setBlue(0)
    
            self.square.setStyleSheet("QWidget { background-color: %s }" %
                self.color.name())
    
    
    
    if __name__ == '__main__':
    
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        ex.show()
        app.exec_()

    这个例子中,我们创建了三个切换按钮和一个窗口组件,设置窗口组件的背景为黑色。这些切换按钮将切换颜色值的红绿蓝部分。背景色依赖于我们按下哪个切换按钮。

    self.color = QtGui.QColor(0, 0, 0)

    这是初始颜色,没有红绿蓝等于黑色。

    self.red = QtGui.QPushButton('Red', self)
    self.red.setCheckable(True)

    为了创建一个切换按钮,我们创建了一个 QPushButton 并通过 setCheckable 方法使之可选择。

    self.connect(self.red, QtCore.SIGNAL('clicked()'), self.setColor)

    连接 clicked 信号到自定义的方法。

    source = self.sender()

    获得切换的按钮。

    if source.text() == "Red":
        if self.red.isChecked():
            self.color.setRed(255)
        else: self.color.setRed(0)

    如果是红色按钮,我们更新颜色的红色部分。

    self.square.setStyleSheet("QWidget { background-color: %s }" %
        self.color.name())

    通过样式表修改背景色。

     

    本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 
    转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4542694.html

     

     

  • 相关阅读:
    主从服务器配置与服务----有图
    密钥ssh 配置操作
    用户权限的sudo管理
    系统进程与计划任务管理
    文件系统--磁盘空间耗尽--磁盘坏道 处理以上问题
    MySQL字符串函数:substring_index()的使用详解
    MySQL字符串函数:locate()使用方法详解
    PHP 常用特殊字符的各种表示
    PHP get_headers()函数详解
    PHP urlencode()和urldecode()函数详解
  • 原文地址:https://www.cnblogs.com/superdo/p/4542694.html
Copyright © 2011-2022 走看看