工具/版本

(1)安装环境:Windows7 64bit

(2)使用版本Python3.6

(3)PYQT5

(4)eric6-6.1.0

基本的使用前文有介绍,直入正题

初始形态

选择省份后,列出对应省份所有城市,都选择后,点击开始,显示在文本框中

实现方法,首先将所有省份和对应城市放在对应的字典中

#!/usr/bin/env python
# encoding: utf-8
"""
+------------------------------------------------------------------------------+╱◥██◣     ∧_∧    ∧_∧     ∧_∧    ∧_∧    ╱◥██◣|田︱田田|      (^ .^)  (^ 、^)  (^ 0^)  (^ Д^)  |田︱田田|
╬╬╬╬╬╬╬-----∪-∪-------∪-∪-------∪-∪------∪-∪---╬╬╬╬╬╬╬
+------------------------------------------------------------------------------+
License (C) Copyright 2013-2017, Node Supply Chain Manager Corporation Limited.
File Name         :    area.py.py
Auther            :    Samenmoer
Software Version  :    Python3.4
Email Address     :    gpf192315@163.com
Creat Time        :    2018/5/20 18:01
Description       :
---------------------------------------------------------------------------------
Modification History
Data          By           Version       Change Description
=================================================================================  |               |                |
=================================================================================
¤╭⌒╮ ╭⌒╮¤╭⌒╮ ╭⌒╮¤╭⌒╮ ╭⌒╮¤╭⌒╮  ╭⌒╮¤╭⌒╮╭⌒╮¤╭⌒╮╭⌒╮
---------------------------------------------------------------------------------
"""dictProvince={2: '北京', 3: '安徽', 4: '福建', 5: '甘肃', 6: '广东', 7: '广西', 8: '贵州', 9: '海南', 10: '河北',11: '河南', 12: '黑龙江', 13: '湖北', 14: '湖南', 15: '吉林', 16: '江苏', 17: '江西', 18: '辽宁',19: '内蒙古', 20: '宁夏', 21: '青海', 22: '山东', 23: '山西', 24: '陕西', 25: '上海', 26: '四川',27: '天津', 28: '西藏', 29: '新疆', 30: '云南', 31: '浙江', 32: '重庆', 33: '香港', 34: '澳门',35: '台湾'}dictCity={2:{52: '北京'}, 3:{36: '安庆', 37: '蚌埠', 38: '巢湖', 39: '池州', 40: '滁州', 41: '阜阳', 42: '淮北',43: '淮南', 44: '黄山', 45: '六安', 46: '马鞍山', 47: '宿州', 48: '铜陵', 49: '芜湖',50: '宣城', 51: '亳州',3401: '合肥'}, 4:{53: '福州', 54: '龙岩', 55: '南平',56: '宁德', 57: '莆田', 58: '泉州', 59: '三明',60: '厦门', 61: '漳州'}, 5:{62: '兰州', 63: '白银', 64: '定西', 65: '甘南', 66: '嘉峪关', 67: '金昌',68: '酒泉', 69: '临夏', 70: '陇南', 71: '平凉', 72: '庆阳', 73: '天水', 74: '武威', 75: '张掖'},6:{76: '广州', 77: '深圳', 78: '潮州', 79: '东莞', 80: '佛山', 81: '河源', 82: '惠州', 83: '江门',84: '揭阳', 85: '茂名', 86: '梅州', 87: '清远', 88: '汕头', 89: '汕尾', 90: '韶关', 91: '阳江',92: '云浮', 93: '湛江', 94: '肇庆', 95: '中山', 96: '珠海'}, 7:{97: '南宁', 98: '桂林', 99: '百色',100: '北海', 101: '崇左', 102: '防城港', 103: '贵港', 104: '河池', 105: '贺州', 106: '来宾', 107: '柳州',108: '钦州', 109: '梧州', 110: '玉林'}, 8:{111: '贵阳', 112: '安顺', 113: '毕节', 114: '六盘水',115: '黔东南', 116: '黔南', 117: '黔西南', 118: '铜仁', 119: '遵义'}, 9:{120: '海口', 121: '三亚',122: '白沙', 123: '保亭', 124: '昌江', 125: '澄迈县', 126: '定安县', 127: '东方', 128: '乐东', 129: '临高县',130: '陵水', 131: '琼海', 132: '琼中', 133: '屯昌县', 134: '万宁', 135: '文昌', 136: '五指山', 137: '儋州'},10:{138: '石家庄', 139: '保定', 140: '沧州', 141: '承德', 142: '邯郸', 143: '衡水', 144: '廊坊', 145: '秦皇岛',146: '唐山', 147: '邢台', 148: '张家口'}, 11:{149: '郑州', 150: '洛阳', 151: '开封', 152: '安阳', 153: '鹤壁',154: '济源', 155: '焦作', 156: '南阳', 157: '平顶山', 158: '三门峡', 159: '商丘', 160: '新乡', 161: '信阳',162: '许昌', 163: '周口', 164: '驻马店', 165: '漯河', 166: '濮阳'}, 12:{167: '哈尔滨', 168: '大庆',169: '大兴安岭', 170: '鹤岗', 171: '黑河', 172: '鸡西', 173: '佳木斯', 174: '牡丹江', 175: '七台河',176: '齐齐哈尔', 177: '双鸭山', 178: '绥化', 179: '伊春'}, 13:{180: '武汉', 181: '仙桃', 182: '鄂州',183: '黄冈', 184: '黄石', 185: '荆门', 186: '荆州', 187: '潜江', 188: '神农架林区', 189: '十堰', 190: '随州',191: '天门', 192: '咸宁', 193: '襄樊', 194: '孝感', 195: '宜昌', 196: '恩施'}, 14:{197: '长沙', 198: '张家界',199: '常德', 200: '郴州', 201: '衡阳', 202: '怀化', 203: '娄底', 204: '邵阳', 205: '湘潭', 206: '湘西',207: '益阳', 208: '永州', 209: '岳阳', 210: '株洲'}, 15:{211: '长春', 212: '吉林', 213: '白城', 214: '白山',215: '辽源', 216: '四平', 217: '松原', 218: '通化', 219: '延边'}, 16:{220: '南京', 221: '苏州', 222: '无锡',223: '常州', 224: '淮安', 225: '连云港', 226: '南通', 227: '宿迁', 228: '泰州', 229: '徐州', 230: '盐城',231: '扬州', 232: '镇江'}, 17:{233: '南昌', 234: '抚州', 235: '赣州', 236: '吉安', 237: '景德镇', 238: '九江',239: '萍乡', 240: '上饶', 241: '新余', 242: '宜春', 243: '鹰潭'}, 18:{244: '沈阳', 245: '大连', 246: '鞍山',247: '本溪', 248: '朝阳', 249: '丹东', 250: '抚顺', 251: '阜新', 252: '葫芦岛', 253: '锦州', 254: '辽阳',255: '盘锦', 256: '铁岭', 257: '营口'}, 19:{258: '呼和浩特', 259: '阿拉善盟', 260: '巴彦淖尔盟',261: '包头', 262: '赤峰', 263: '鄂尔多斯', 264: '呼伦贝尔', 265: '通辽', 266: '乌海', 267: '乌兰察布市',268: '锡林郭勒盟', 269: '兴安盟'}, 20:{270: '银川', 271: '固原', 272: '石嘴山', 273: '吴忠', 274: '中卫'},21:{275: '西宁', 276: '果洛', 277: '海北', 278: '海东', 279: '海南', 280: '海西', 281: '黄南', 282: '玉树'},22:{283: '济南', 284: '青岛', 285: '滨州', 286: '德州', 287: '东营', 288: '菏泽', 289: '济宁', 290: '莱芜',291: '聊城', 292: '临沂', 293: '日照', 294: '泰安', 295: '威海', 296: '潍坊', 297: '烟台', 298: '枣庄',299: '淄博'}, 23:{300: '太原', 301: '长治', 302: '大同', 303: '晋城', 304: '晋中', 305: '临汾', 306: '吕梁',307: '朔州', 308: '忻州', 309: '阳泉', 310: '运城'}, 24:{311: '西安', 312: '安康', 313: '宝鸡', 314: '汉中',315: '商洛', 316: '铜川', 317: '渭南', 318: '咸阳', 319: '延安', 320: '榆林'}, 25:{321: '上海'}, 26:{322: '成都',323: '绵阳', 324: '阿坝', 325: '巴中', 326: '达州', 327: '德阳', 328: '甘孜', 329: '广安', 330: '广元',331: '乐山', 332: '凉山', 333: '眉山', 334: '南充', 335: '内江', 336: '攀枝花', 337: '遂宁', 338: '雅安',339: '宜宾', 340: '资阳', 341: '自贡', 342: '泸州'}, 27:{343: '天津'}, 28:{344: '拉萨', 345: '阿里',346: '昌都', 347: '林芝', 348: '那曲', 349: '日喀则', 350: '山南'}, 29:{351: '乌鲁木齐', 352: '阿克苏',353: '阿拉尔', 354: '巴音郭楞', 355: '博尔塔拉', 356: '昌吉', 357: '哈密', 358: '和田', 359: '喀什',360: '克拉玛依', 361: '克孜勒苏', 362: '石河子', 363: '图木舒克', 364: '吐鲁番', 365: '五家渠', 366: '伊犁'},30:{367: '昆明', 368: '怒江', 369: '普洱', 370: '丽江', 371: '保山', 372: '楚雄', 373: '大理', 374: '德宏',375: '迪庆', 376: '红河', 377: '临沧', 378: '曲靖', 379: '文山', 380: '西双版纳', 381: '玉溪', 382: '昭通'},31:{383: '杭州', 384: '湖州', 385: '嘉兴', 386: '金华', 387: '丽水', 388: '宁波', 389: '绍兴', 390: '台州',391: '温州', 392: '舟山', 393: '衢州'}, 32:{394: '重庆'}, 33:{395: '香港'}, 34:{396: '澳门'}, 35:{397: '台湾'}}

框体自动生成的代码

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

# Form implementation generated from reading ui file 'D:\Python36\0_eric_project\test1\hello.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(684, 259)
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")
        self.pushButton = QtWidgets.QPushButton(self.centralWidget)
        self.pushButton.setGeometry(QtCore.QRect(160, 190, 93, 28))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralWidget)
        self.pushButton_2.setGeometry(QtCore.QRect(390, 190, 93, 28))
        self.pushButton_2.setObjectName("pushButton_2")
        self.lineEdit = QtWidgets.QLineEdit(self.centralWidget)
        self.lineEdit.setGeometry(QtCore.QRect(160, 30, 361, 21))
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit_2 = QtWidgets.QLineEdit(self.centralWidget)
        self.lineEdit_2.setGeometry(QtCore.QRect(160, 70, 361, 21))
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.label = QtWidgets.QLabel(self.centralWidget)
        self.label.setGeometry(QtCore.QRect(20, 40, 72, 15))
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.centralWidget)
        self.label_2.setGeometry(QtCore.QRect(20, 70, 72, 15))
        self.label_2.setObjectName("label_2")
        self.comboBox = QtWidgets.QComboBox(self.centralWidget)
        self.comboBox.setGeometry(QtCore.QRect(180, 130, 87, 22))
        self.comboBox.setObjectName("comboBox")
        self.comboBox_2 = QtWidgets.QComboBox(self.centralWidget)
        self.comboBox_2.setGeometry(QtCore.QRect(380, 130, 87, 22))
        self.comboBox_2.setObjectName("comboBox_2")
        self.label_3 = QtWidgets.QLabel(self.centralWidget)
        self.label_3.setGeometry(QtCore.QRect(190, 110, 72, 15))
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(self.centralWidget)
        self.label_4.setGeometry(QtCore.QRect(390, 110, 72, 15))
        self.label_4.setObjectName("label_4")
        MainWindow.setCentralWidget(self.centralWidget)

        self.retranslateUi(MainWindow)
        self.pushButton_2.clicked.connect(MainWindow.close)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "开始"))
        self.pushButton_2.setText(_translate("MainWindow", "退出"))
        self.label.setText(_translate("MainWindow", "显示省份"))
        self.label_2.setText(_translate("MainWindow", "显示城市"))
        self.label_3.setText(_translate("MainWindow", "选择省份"))
        self.label_4.setText(_translate("MainWindow", "选择城市"))

if __name__ == "__main__":
    import sysapp = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

增加功能实现代码

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

"""
Module implementing MainWindow.
"""
import sys
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QMainWindow, QApplicationfrom Ui_hello import Ui_MainWindow
import areaclass MainWindow(QMainWindow, Ui_MainWindow):
    """
    Class documentation goes here.
    """
    def __init__(self, parent=None):
        """
        Constructor

        @param parent reference to the parent widget
        @type QWidget
        """
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        # 初始化省
        self.comboBox.clear()  # 清空items
        self.comboBox.addItem('请选择')
        for k, v in area.dictProvince.items():
            self.comboBox.addItem(v, k)  # 键、值反转

    @pyqtSlot(int)
    # 取市的键值
    def on_comboBox_activated(self, index):
        key = self.comboBox.itemData(index)
        print(key)
        self.comboBox_2.clear()  # 清空items
        if key:
            self.comboBox_2.addItem('请选择')
            # 初始化市
            for k, v in area.dictCity[key].items():
                self.comboBox_2.addItem(v, k)  # 键、值反转

    @pyqtSlot()
    def on_pushButton_clicked(self):
        #获取当前选项框索引
        province_index = self.comboBox.currentIndex()
        city_index = self.comboBox_2.currentIndex()
        # 取当前省市县名称
        province_name = self.comboBox.itemText(province_index)
        city_name = self.comboBox_2.itemText(city_index)
        print(province_name,city_name)
        self.lineEdit.setText(province_name)#显示省份
        self.lineEdit_2.setText(city_name)#显示城市
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = MainWindow()
    ui.show()
    sys.exit(app.exec_())

python学习记录之---------PYQT5做工具(2)下拉选项框的使用相关推荐

  1. excel如何做单元格下拉和根据文字自动变色

    笔者经常做一些统计表,比如各省完成情况,省份进度等,其中不同的情况进度使用不同的颜色标注,这样方便自己和其他审阅者阅读,但是一个个调整颜色太麻烦,而且很容易出错,如果做成根据调整情况进度后,颜色自动变 ...

  2. Python学习记录day6-反射、常用模块

    Python学习记录day6-反射.常用模块 @(学习)[python] Python学习记录day6-反射常用模块 反射 常用模块 1 sys System-specific parameters ...

  3. 蜗牛一步一步地往上爬的Python学习记录

    Python学习记录 前言 简介 基础知识 类型变量 高级特性 函数式编程 高阶函数 偏函数 装饰器decorator 匿名函数 前言 第一,绝对不断更: 第二,绝对认真写: 第三,绝对撰写的公正漂亮 ...

  4. Python学习记录day3

    2019独角兽企业重金招聘Python工程师标准>>> Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个 ...

  5. 【Python学习记录】Numpy广播机制(broadcast)

    ✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Python学习记录 文章目录 一.什么是Numpy广播机制 二.Numpy广播应用 三.Numpy广播规则 一.什么是Numpy广播机制 在Numpy. ...

  6. Python学习记录——英文名修改成标准格式

    Python学习记录--英文名修改成标准格式 功能需求 把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.输入:['adam', 'LISA', 'barT'],输出:['Adam', ...

  7. python学习记录——容器篇

    容器 字符串 下标(索引) # 下表也称为是索引,是一个整型数字,可以是正数,也可以是负数 # 正数下标是从0开始的,表示第一个字符,-1表示最后一个字符 my_str = 'hello'h e l ...

  8. Opencv+Python学习记录9:掩膜(掩码)的使用(内附详细代码)

    一,基本概念 OpenCV中的很多函数都会指定一个掩模,也被称为掩码,例如: 计算结果=cv2.add(参数1,参数2,掩模) 当使用掩模参数时,操作只会在掩模值为非空的像素点上执行,并将其他像素点的 ...

  9. Python学习记录:shapefile.Writer报错

    Python学习记录 shapefile.Writer报错 w=shapefile.Writer(r.shapeType)使用时报错 Exception: The target filepath 5 ...

最新文章

  1. SnackbarUtilDemo【Snackbar的封装类】
  2. Vmware VsPhere下的VM如何安装Hyper-v服务
  3. 认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL:
  4. cd返回上一 git_PHP项目中应用CI/CD的碎碎恋!
  5. virtualbox硬件加速_VirtualBox 安装Ubuntu虚拟机卡顿 加速方法以及出现的问题
  6. java bitmap获取图片大小_android 通过uri获取bitmap图片并压缩
  7. sklearn自学指南(part19)--LDA和QDA
  8. 关于编码问题,报错:'gbk' codec can't encode character '\u3164' in position 0: illegal multibyte sequence...
  9. 智能优化算法应用:基于麻雀搜索算法的TSP问题求解 - 附代码
  10. 【大一期末项目】qqclienkey利用:基于qqclientkey的纯c++项目实践
  11. MkDocs项目文档生成器(一)
  12. 深度学习笔记:利用预训练模型之特征提取训练小数据集上的图像分类器
  13. 【小程序开发】ios中时间显示为NaNNaN
  14. ad采样的符号位_AD位数是如何影响信号幅值的?
  15. Harmony鸿蒙开发 四、Ability的生命周期
  16. 《本科-线性代数笔记-精简汇总》,纯手工!
  17. (三)安装seafile服务器
  18. 现在开房都不需要在前台办理入住了?刺激
  19. 使用numpy.sin()打印矢量/矩阵元素的正弦值 使用Python的线性代数
  20. Web前端课程大酬宾啦.....

热门文章

  1. 本题要求编写程序,输出一个短句“Programming in C is fun!”。
  2. ios开发之离屏渲染
  3. 这样设置,让你的 IDEA 好看到爆炸!
  4. 【4如何添加Oracle数据库ORCL2新实例】
  5. 【计算机毕业设计】冷冻仓储管理系统
  6. [渝粤教育] 陕西科技大学 数控加工技术 参考 资料
  7. 斐讯K2刷breed加刷老毛子华硕系统,救砖以及修复弱信号故障
  8. CLTC NEDC WLTC工况,到底谁更准?
  9. 给 Android 开发者的 RxJava 详解(作者:扔物线)
  10. 多媒体计算机至少需要配置哪两个设备,新野一高多媒体技术应用选择题-选修题.doc...