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-下拉框联动效果的更多相关文章

  1. MVC 下拉框联动效果(单选)

    下拉框联动效果,我们以部门--职位为例,选择部门时,关联到该部门的职位.下拉框的写法就不多说了,详细请参照前文. 视图: 其中,dept是部门的属性,deptlist是部门下拉框的属性,job是职位的 ...

  2. JQuery打造下拉框联动效果

    做联动效果,若是用纯JavaScript来做,往往须要辅助页面保存须要刷新的结果集,然后渲染到原页面.考虑将须要动态刷新的内容自己主动拼接到前一个下拉框之后,当前一个下拉框onchange后,同级的后 ...

  3. Easyui多个下拉框联动效果

    好久没写前端了,以前在做多级联动的时候,用的是easyui的tree结构,但是需要一次性全部加载,不是按需加载,性能不好,退而求其之,用多个下拉框做 eayui的combobox  有onSelect ...

  4. jquery 实现层级下拉框联动效果 代码

    <select name="fCareId" id="fCareId"> <option selected="selected&qu ...

  5. ajax技术实现登录判断用户名是否重复以及利用xml实现二级下拉框联动,还有从数据库中获得

    今天学了ajax技术,特地在此写下来作为复习. 一.什么是ajax? 客户端(特指PC浏览器)与服务器,可以在[不必刷新整个浏览器]的情况下,与服务器进行异步通讯的技术  即,AJAX是一个[局部刷新 ...

  6. jQuery Ajax MVC 下拉框联动

    无刷新下拉框联动方法: Controllers代码 public JsonResult DH_Change(string DH_ID) { List<SelectListItem> Tea ...

  7. html年月日下拉联动菜单 年月日三下拉框联动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 月薪10K必备--C#下拉框联动

                   下拉框联动 很多网站上都用到下拉框联动,就是第一个下拉框没有选择任何项,第二个下拉框就没有选项.这样的做法更加谨慎,更加紧密. 下面我就教大家怎么做下拉框联动: 首先在窗 ...

  9. Ext 下拉框联动第一次显示不正常的问题

    做下拉框联动,异步加载数据,第一次显示时数据不准确,不要在combo_2的下拉框直接绑定store,在combo_1的改变事件里调用下面的方法 function GetAllCustomerBrand ...

  10. Java Swing应用程序 JComboBox下拉框联动查询

    在web项目中,通过下拉框.JQuery和ajax可以实现下拉框联动查询. 譬如说,当你查询某个地方时,页面上有:省份:<下拉框省份> 市区:<下拉框市区> 县乡:<下拉 ...

随机推荐

  1. python中元类(metaclass)的理解

    原文地址:http://www.cnblogs.com/tkqasn/p/6524879.html 一:类也是对象 类就是一组用来描述如何生成一个对象的代码. 类也是一个对象,只要你使用关键字clas ...

  2. [scrapy]安装报错: Twisted安装错误

    http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载whl文件 然后 pip install <whl文件名> 安装 Scrapy s ...

  3. HDU_2191_多重背包

    http://acm.hdu.edu.cn/showproblem.php?pid=2191 简单多重背包题. #include<iostream> #include<cstdio& ...

  4. BZOJ 1614 [Usaco2007 Jan]Telephone Lines架设电话线 (二分+最短路)

    题意: 给一个2e4带正边权的图,可以免费k个边,一条路径的花费为路径上边权最大值,问你1到n的最小花费 思路: 对于一个x,我们如果将大于等于x的边权全部免费,那么至少需要免费的边的数量就是 “设大 ...

  5. Linux系统基础认知

    什么是操作系统? 操作系统作为接口的示意图: 没有安装操作系统的计算机,通常被称为裸机 如果想在 裸机 上运行自己所编写的程序,就必须用机器语言书写程序 如果计算机上安装了操作系统,就可以在操作系统上 ...

  6. spark sql 执行计划生成案例

    前言 一个SQL从词法解析.语法解析.逻辑执行计划.物理执行计划最终转换为可以执行的RDD,中间经历了很多的步骤和流程.其中词法分析和语法分析均有ANTLR4完成,可以进一步学习ANTLR4的相关知识 ...

  7. php curl 检测网页是否被百度收录

    <?php /* * 检测百度是否收录网页 curl模式 * @ param string $url传入的url* return int (1 收录 0 不收录) */ function che ...

  8. debian 和ubuntu 安装ifconfig 命令

    # apt update # apt install net-tools

  9. centos 7 设置 本地更新源

    #yum-config-manager --disable \*--屏弊所有更新源#mkdir /r7iso# cd /run/media/{用户名}/CentOS\ 7\ x86_64/ #cp - ...

  10. Angular目录结构

    一. Angular目录结构 e2e:在e2e/下是端到端测试 node_modules:安装的第三方模块都在这,使用npm install安装的1 Src:我们项目的所有文件 { App:组件,以a ...