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

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

# python:2.x

__author__ = ‘Administrator‘

#如上图要求:创建指定多个复选框,一种是通过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_())

如图:

时间: 2024-10-03 09:07:38

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

用JS动态创建SVG元素并绑定事件

var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); svg.setAttribute("width", "800"); svg.setAttribute("height", "500"); svg.addEventListener("load", function () {

layUi 模板引擎动态创建元素之后,绑定的事件无效了;

模板引擎动态创建元素之后,绑定的事件无效了: layUi 模板引擎动态创建元素之后,绑定的事件无效了: 可以在 模板引擎成功后  注册事件 原文地址:https://www.cnblogs.com/lpp-11-15/p/12264046.html

pyqt 同时勾选多个items(网友提供学习)

框选多个item之后,用空格键可以勾选/去选多个item,效果如下图所示: http://oglop.gitbooks.io/pyqt-pyside-cookbook/list/img/checkbox_multi_toggle.gif # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.Qt import * from PyQt4.QtCore import * from PyQt4.QtGu

OAF 动态创建组件以及动态绑定属性

在开发中,我们遇到以下一个需求. 一个表格左侧有5列是固定存在的,右侧有N列是动态生成的,并且该N列中第一列可输入,第二列是不可编辑的,但是是数字,如果小于0,那么就要显示为红色,重点标识出来. 首先,我们假设你的VO中的SQL查询已经做好了,并且每次能动态确定到需要插入几列. //获得你要生成的列总数 int n=Integer.valueOf(String.valueOf(am.invokeMethod("getCloumnCount"))) ; OATableBean table

Angular动态创建组件之Portals

这篇文章主要介绍使用Angular api 和 CDK Portals两种方式实现动态创建组件,另外还会讲一些跟它相关的知识点,如:Angular多级依赖注入.ViewContainerRef,Portals可以翻译为 门户 ,我觉得放到这里叫 入口 更好,可以理解为动态创建组件的入口,类似于小程序或者Vue中的Slot. cdk全名Component Development Kit 组件开发包,是Angular官方在开发基于Material Design的组件库时抽象出来单独的一个开发包,里面

Delphi 动态创建组件,单个创建、单个销毁

效果图如下: 实现部分代码如下: var rec: Integer = 0; //记录增行按钮点击次数 implementation {$R *.dfm} //动态释放单个组件内存,即销毁组件 procedure TForm1.DeleteRow(Sender: TObject); begin if rec < 1 then Exit else begin TPanel(Panel1.Controls[rec]).Free; //释放单个控件内存 TComboBox(Panel2.Control

ViewContainerRef 动态创建视图

Angular DOM 操作 相关的APIs和类: 查询DOM节点 template variable ref: 模版变量引用,相当于react中的ref ViewChild: 查询DOM,返回单个元素引用 ViewChildren: 返回一个QueryList对象,包含一系列元素 ElementRef: 元素引用 查询的方式获取,比如 @ViewChild('myInput') inputElm: ElementRef 依赖注入的方式,获取宿主元素,比如 constructor(private

Lightning框架示例 - 动态建立Lightning组件

动态建立Lightning组件 组件化前端开发是Lightning框架的优点之一.在进行Lightning应用开发时,我们可以将组件进行嵌套.引用,从而实现模块的封装和重用,提高开发效率. 组件的嵌套和引用最常用的方法是在Lightning组件中直接使用组件标签,比如: <aura:component controller="ExampleController"> <c:ExampleChildComponent /> </aura:component&g

PyQt4信号和槽

每个GUI库都提供了事件发生的不少细节,如鼠标点击.键盘按键等.例如,如果用户点击了一个写有Click Me的按钮后,按钮所附带的信息就会变成可用.GUI库可以告知我们 鼠标点击时与按钮的相对坐标,与按钮相应的父窗口部件,还有与屏幕相关的信息:GUI库还 会给出Shift.Ctrl.Alt以及NumLock键在当时的状态:也会给出按下和松开按钮的精确时间等.如果用户通过非鼠标点击的其他方式按下按钮,也应该能够提供相类似的信息.用户也有可能通过多次使用Tab键来把光标移动到按钮上,之后再按下空格,