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

pyqt动态创建一系列组件并绑定信号和槽(网友提供学习)

时间:2014-09-12 11:33:53      阅读:436      评论:0      收藏:0      [点我收藏+]

标签:des   blog   http   io   ar   for   文件   数据   2014   

# -*- coding: utf-8 -*-

# python:2.x

__author__ = ‘Administrator‘

bubuko.com,布布扣

#如上图要求:创建指定多个复选框,一种是通过QT设计器Designer,这种是在知情的情况下。另一种是通过配置文件读出来,或者从数据库中取出来,还有其他情况就需要动态创建

#思路是循环列表,创建对象,插入布局,进行信号槽绑定和处理信号,通过sender()方法来获取那个对象发出的信号

from PyQt4.Qt import *

from PyQt4.QtCore import *

from PyQt4.QtGui import *

class Widget(QWidget):

    def __init__(self,parnet=None):

        super(Widget,self).__init__(parnet)

        layout=QVBoxLayout()

        inters=[(0,‘python‘),(1,‘go‘),(2,‘c++‘),(3,‘sql‘)]

        for id_,text in inters:

            checkbox=QCheckBox(text,self)

            checkbox.id_ = id_

            checkbox.stateChanged.connect(self.checks)

            layout.addWidget(checkbox)

        self.la=QLabel(self)

        layout.addWidget(self.la)

        self.setLayout(layout)

 

    def checks(self,start):

        checkbox=self.sender()#获取发射信号对象

        if start==Qt.Unchecked:

            self.la.setText(u‘取消{0}:{1}‘.format(checkbox.id_,checkbox.text()))

        elif start==Qt.Checked:

            self.la.setText(u‘选择了{0}: {1}‘.format(checkbox.id_, checkbox.text()))

 

if __name__==‘__main__‘:

    import sys

    app =QApplication(sys.argv)

    widget = Widget()

    widget.show()

    sys.exit(app.exec_())

 如图:bubuko.com,布布扣

pyqt动态创建一系列组件并绑定信号和槽(网友提供学习)

标签:des   blog   http   io   ar   for   文件   数据   2014   

原文地址:http://www.cnblogs.com/mhxy13867806343/p/3967877.html

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