Python高级进阶#017 pyqt5下拉列表控件QComboBox

简介: Python高级进阶#017 pyqt5下拉列表控件QComboBox

知识回顾:



1.掌握Qpixmap图片对象

2.掌握qlabel控件装载和调整图片


一、目标案例:省市联动选择



1.需要两个下拉列表

2.点击第一个下拉列表后,会联动第二个列表中的内容

3.要求使用frame的绝对布局

应用效果


二、下拉框combobox使用



1.基本配置

主要用于选择,比如省市联动选择必须要载入Qcombobox类。

实例化类为一个对象,对这个对象进行配置,实则就是对下拉列表的配置。

combo1=QComboBox(myframe1)  在实例化的时候,要选择父容器

combo1.move(20,0)


我们通过addItem来往combobox中装入项目。

       combo1.addItem("选择省份")

       combo1.addItem("浙江")

       combo1.addItem("江苏")

       combo1.addItem("安徽")

用到clear方法将所有项目进行清空。


2.下拉选择事件

Combobox的点击事件

理解为激活actived信号。

信号有两种传递方式:

第一种:传递字符串,这个实则传递的是选择的文本。

combo1.activated[str].connect(自定义槽方法)


第二种:传递整型变量,这个传递的是选择的索引。索引默认从0开始。

第一项的索引是0,第二项的索引是1,依次类推..

combo1.activated[int].connect(自定义槽方法)


省市联动的combobox

注意:必须要将需要联动的控件做成类对象的属性。实际上就是加上self.


三、扩展知识内容



下拉列表框也可以进行输入,但是需要对方法进行配置。

配置setEditable 为True:

combo1.setEditable(True)


对应的信号为: editTextChanged


那么我们同样可以采用信号槽的方式实现编辑时候的事件处理函数。


得出的经验特点:

我们在书写信号的时候,这些信号基本上都是以ed进行结尾的。


四、总结强调



1.掌握qcombobox的载入布局与项目加载。

2.掌握下拉列表的编辑和对应事件。

3.掌握联动的思想。


本节知识源代码:

import sys
from PyQt5.QtWidgets import QApplication,QWidget,QLabel,QComboBox,QFrame
class MyClass(QWidget):
    def __init__(self):
        super(MyClass, self).__init__()
        self.initUI()
    def initUI(self):
        self.setWindowTitle("刘金玉编程")
        self.setGeometry(300,100,400,300)
        myframe1=QFrame(self)
        myframe1.move(50,50)
        lbl1=QLabel("省",myframe1)
        lbl1.move(0,3)
        combo1=QComboBox(myframe1)
        combo1.move(20,0)
        # combo1.setEditable(True)
        combo1.activated[str].connect(self.myActived)
        #省份
        combo1.addItem("选择省份")
        combo1.addItem("浙江")
        combo1.addItem("江苏")
        combo1.addItem("安徽")
        #市级
        lbl1 = QLabel("市", myframe1)
        lbl1.move(100, 3)
        self.combo2 = QComboBox(myframe1)
        self.combo2.move(120, 0)
        self.show()
    def myActived(self,s):
        self.combo2.clear()
        if s=="浙江":
            self.combo2.addItem("杭州")
            self.combo2.addItem("宁波")
            self.combo2.addItem("温州")
        elif s=="江苏":
            self.combo2.addItem("苏州")
            self.combo2.addItem("无锡")
            self.combo2.addItem("扬州")
            self.combo2.addItem("南京")
if __name__=="__main__":
    app=QApplication(sys.argv)
    mc=MyClass()
    app.exec_()
相关文章
|
17小时前
|
存储 Python
Python进阶语法之推导式
本章是对自己学完基础语法后,学习python进阶语法推导式过程中,自己的一些理解和看法,因为自己从刚开始第一次看看不懂,到学习一段时间后,通过积累再次看这里的知识点发现自己有了新的理解,这次将这部分知识学完了,剩下就是通过练习来达到熟练了.本章的推导式,包含列表推导式,字典推导式,集合与元组推导式这四种.主要是对python进阶语法推导式,的练习与理解,同时也提高了自己对代码的简化和运行的能力的提高,也是在这次学习中,我发现学习代码更多需要的是对基础和知识的积累,当眼界与思维突破瓶颈,看之前难以理解的事物发现变的容易去使用和理解了.
11 2
|
11天前
|
Python Windows
【Python进阶必备】一文掌握re库:实战正则表达式
【Python进阶必备】一文掌握re库:实战正则表达式
10 0
|
14天前
|
安全 前端开发 中间件
Python面试题:Django Web框架基础与进阶
【4月更文挑战第17天】本文详细梳理了Django面试中常考的基础和进阶问题,包括MTV架构、ORM、数据库迁移、视图模板、中间件、信号、表单验证、用户认证授权等,并指出易错点及规避策略。提供代码示例展示模型和视图的实现,助力开发者在面试中脱颖而出。
35 12
|
15天前
|
数据采集 前端开发 JavaScript
使用Python打造爬虫程序之揭开动态加载内容的神秘面纱:Python爬虫进阶技巧
【4月更文挑战第19天】本文探讨了如何用Python爬虫抓取动态加载内容。动态加载内容常由JavaScript异步加载,传统爬虫无法捕获。文章介绍了两种方法:1) 使用Selenium模拟浏览器行为,等待动态内容出现并提取数据;2) 分析网页API请求,直接模拟请求获取数据。同时,提醒注意性能、反爬策略和API变动等问题,强调持续学习与实践的重要性。
|
18天前
|
数据库 Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(下)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)
45 0
|
18天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
58 0
|
20天前
|
测试技术 Python
Python 高级主题:如何实现一个简单的 Python 单元测试?
Python单元测试示例:使用`unittest`模块测试`my_function`函数。定义函数`my_function(x)`返回`x*2`,然后创建`TestMyFunction`类继承`unittest.TestCase`,包含两个测试方法检验不同输入。通过`unittest.main()`运行测试。遵循小写字母命名测试方法和使用断言检查结果的最佳实践。可选`pytest`等第三方库进行复杂测试。
13 1
|
21天前
|
JavaScript 前端开发 Python
Python 高级主题: 解释 Python 中的闭包是什么?
【4月更文挑战第13天】闭包是内部函数引用外部变量的函数对象,作为外部函数的返回值。当外部函数执行完毕,其变量本应消失,但由于内部函数的引用,这些变量在内存中保持存活,形成闭包。例如,在外函数中定义内函数并返回内函数引用,实现对外部局部变量的持久访问。闭包在Python和JavaScript等语言中常见,是强大的编程工具,连接不同作用域并允许局部变量持久化,用于复杂程序设计。**
16 4
|
2月前
|
Python
探索Python集合推导式的进阶应用
探索Python集合推导式的进阶应用
|
2月前
|
监控 API C语言
【Python 基础教程 22】全面揭秘Python3 os模块:从入门到高级的实用教程指南
【Python 基础教程 22】全面揭秘Python3 os模块:从入门到高级的实用教程指南
67 1