pyqt5-下拉框联动效果
from PyQt5.Qt import * class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("")
self.resize(500,500) #后期这个字典可以从数据库中传入
self.province = {
"安徽省":["3401",{
"合肥市":"340101",
"六安市":"340102",
"阜阳市":"340103",
"芜湖市":"340104",
"滁州市":"340105",
"宣城市":"340106",
"黄山市":"340107",
"亳州市":"340108",
}],
"江苏省": ["5201", {
"南京市": "520101",
"苏州市": "520102",
"无锡市": "520103",
"常州市": "520104",
"盐城市": "520105",
"扬州市": "520106",
}],
"湖北省": ["4201", {
"武汉市": "420101",
"鄂州市": "420102",
"荆门市": "420103",
"襄阳市": "420104",
"咸宁市": "420105",
"黄冈市": "420106",
}],
} self.setup_ui() def setup_ui(self):
#1.创建省下拉框,修改一些显示尺寸(这个可以自行调节)
qcb_pro = QComboBox(self)
qcb_pro.resize(80,25)
qcb_pro.move(100,100)
self.qcb_pro = qcb_pro #3.创建市下拉选择框
qcb_city = QComboBox(self)
qcb_city.resize(80,25)
qcb_city.move(190,100)
self.qcb_city = qcb_city # 4.为下拉框绑定触发事件,currentIndexChanged信号有两个方法,指定获取int的这个方法
qcb_pro.currentIndexChanged[int].connect(self.pro_changed)
qcb_city.currentIndexChanged[int].connect(self.city_change) # 2.为省下拉框填充数据,可根据从数据库中检索出的数据,动态填充
for key, val in self.province.items():
qcb_pro.addItem(key, val[0]) def pro_changed(self,pro_idx):
#省下拉框改变,先清空市下拉框,然后添加市数据
self.qcb_city.clear()
for key,val in self.province[self.qcb_pro.currentText()][1].items():
self.qcb_city.addItem(key,val)
#同时获取省下拉框对应的data数据,这里只是简单打印
print(self.qcb_pro.itemData(pro_idx)) def city_change(self,city_idx):
#因为在省下拉框操作的时候,有一个clear方法执行,也会触发这个方法,但是由于被清空,传递过来的索引就是-1,就拿不到数据
if city_idx == -1:
pass
else:
# 同时获取市下拉框对应的data数据,这里只是简单打印
print(self.qcb_city.itemData(city_idx)) if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec())
pyqt5-下拉框联动效果的更多相关文章
- MVC 下拉框联动效果(单选)
下拉框联动效果,我们以部门--职位为例,选择部门时,关联到该部门的职位.下拉框的写法就不多说了,详细请参照前文. 视图: 其中,dept是部门的属性,deptlist是部门下拉框的属性,job是职位的 ...
- JQuery打造下拉框联动效果
做联动效果,若是用纯JavaScript来做,往往须要辅助页面保存须要刷新的结果集,然后渲染到原页面.考虑将须要动态刷新的内容自己主动拼接到前一个下拉框之后,当前一个下拉框onchange后,同级的后 ...
- Easyui多个下拉框联动效果
好久没写前端了,以前在做多级联动的时候,用的是easyui的tree结构,但是需要一次性全部加载,不是按需加载,性能不好,退而求其之,用多个下拉框做 eayui的combobox 有onSelect ...
- jquery 实现层级下拉框联动效果 代码
<select name="fCareId" id="fCareId"> <option selected="selected&qu ...
- ajax技术实现登录判断用户名是否重复以及利用xml实现二级下拉框联动,还有从数据库中获得
今天学了ajax技术,特地在此写下来作为复习. 一.什么是ajax? 客户端(特指PC浏览器)与服务器,可以在[不必刷新整个浏览器]的情况下,与服务器进行异步通讯的技术 即,AJAX是一个[局部刷新 ...
- jQuery Ajax MVC 下拉框联动
无刷新下拉框联动方法: Controllers代码 public JsonResult DH_Change(string DH_ID) { List<SelectListItem> Tea ...
- html年月日下拉联动菜单 年月日三下拉框联动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 月薪10K必备--C#下拉框联动
下拉框联动 很多网站上都用到下拉框联动,就是第一个下拉框没有选择任何项,第二个下拉框就没有选项.这样的做法更加谨慎,更加紧密. 下面我就教大家怎么做下拉框联动: 首先在窗 ...
- Ext 下拉框联动第一次显示不正常的问题
做下拉框联动,异步加载数据,第一次显示时数据不准确,不要在combo_2的下拉框直接绑定store,在combo_1的改变事件里调用下面的方法 function GetAllCustomerBrand ...
- Java Swing应用程序 JComboBox下拉框联动查询
在web项目中,通过下拉框.JQuery和ajax可以实现下拉框联动查询. 譬如说,当你查询某个地方时,页面上有:省份:<下拉框省份> 市区:<下拉框市区> 县乡:<下拉 ...
随机推荐
- Redis 3.2.3: 集群3哨兵模式
简介 Redis是一个使用ANSI C编写的开源.支持网络.基于内存.可选持久性的键值对存储数据库.从2015年6月开始,Redis的开发由Redis Labs赞助,而2013年5月至2015年6月期 ...
- input . type=number.使用后问题点
所有主浏览器都支持type属性,但是,并非所有主流浏览器都支持所有不同的 input 类型. 以下 input 类型是 HTML5 中的新类型:color.date.datetime.datetime ...
- 万字分享,我是如何一步一步监控公司MySQL的?
整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 更多优选 一口气说出 9种 分布式ID生成方式,面试官有点懵了 ...
- vuejs之vue和springboot后端进行通信
一.新建一个vue项目,建立好后的相关文件 查看一下新建好的vue项目的结构: 当前各个文件中的内容: App.vue:主入口 <template> <div id="ap ...
- 杭电-------2053Switch Game(C语言)
/* 题目大意是指:有n个灯泡,按1-n编号,要操作n次,第i次操作是将标号是i的倍数的变成相反状态.最终求得是n次操作后,编号为n的灯泡的状态,其实就是求n的约束有多少个,及灯泡n被操作了多少次*/ ...
- JavaScript 箭头函数(Lambda表达式)
Lambda表达式(箭头函数)用于表示一个函数,所以它和函数一样,也拥有参数.返回值.函数体,但它没有函数名,所以Lambda表达式相当于一个匿名函数. 使用方法: ()=>{} 小括号里放参数 ...
- vue路由--使用router.push进行路由跳转
手机赚钱怎么赚,给大家推荐一个手机赚钱APP汇总平台:手指乐(http://www.szhile.com/),辛苦搬砖之余用闲余时间动动手指,就可以日赚数百元 route-link是在html中静态定 ...
- pikachu-跨站请求伪造(CSRF)
一.CSRF漏洞概述 1.1 什么是CSRF漏洞 在CSRF的攻击场景中攻击者会伪造一个请求(整个请求一般是一个链接),然后七篇目标用户进行点击,用户一旦点击了这个请求,整个攻击也就完成了,所以CSR ...
- SpringBoot安全管理--(二)基于数据库的认证
简介: 上篇文章向读者介绍的认证数据都是定义在内存中的,在真实项目中,用户的基本信息以及角色等都存储在数据库中,因此需要从数据库中获取数据进行认证. 开始: 首先建表并且插入数据: pom.xml & ...
- MySQL中的执行计划explain
一.用法及定义: explain为sql的执行计划.在sql前面加上explain关键字即可 如:explain select * from tbl_emp; 名词解释: id:[操作表的顺序] 1. ...