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_()
相关文章
|
3月前
|
Python
【python】pyqt5大学生成绩信息管理系统-图形界面(源码+报告)【独一无二】
【python】pyqt5大学生成绩信息管理系统-图形界面(源码+报告)【独一无二】
164 1
|
1月前
|
数据可视化 IDE 开发工具
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
231 13
|
1月前
|
计算机视觉 Python
python利用pyqt5和opencv打开电脑摄像头并进行拍照
本项目使用Python的PyQt5和OpenCV库实现了一个简单的摄像头应用。用户可以通过界面按钮打开或关闭摄像头,并实时预览视频流。点击“拍照”按钮可以捕捉当前画面并保存为图片文件。该应用适用于简单的图像采集和处理任务。
101 0
python利用pyqt5和opencv打开电脑摄像头并进行拍照
|
1月前
|
数据可视化 IDE 开发者
【Python篇】PyQt5 超详细教程——由入门到精通(终篇)
【Python篇】PyQt5 超详细教程——由入门到精通(终篇)
45 1
|
1月前
|
数据可视化 数据处理 数据库
【Python篇】PyQt5 超详细教程——由入门到精通(中篇一)
【Python篇】PyQt5 超详细教程——由入门到精通(中篇一)
38 1
|
1月前
|
数据可视化 IDE Linux
【Python篇】PyQt5 超详细教程——由入门到精通(序篇)
【Python篇】PyQt5 超详细教程——由入门到精通(序篇)
191 1
|
4月前
|
数据采集 网络协议 数据挖掘
网络爬虫进阶之路:深入理解HTTP协议,用Python urllib解锁新技能
【7月更文挑战第30天】网络爬虫是数据分析和信息聚合的关键工具。深入理解HTTP协议及掌握Python的urllib库对于高效爬虫开发至关重要。HTTP协议采用请求/响应模型,具有无状态性、支持多种请求方法和内容协商等特点。
51 3
|
4月前
|
数据采集 Java C语言
Python面向对象的高级动态可解释型脚本语言简介
Python是一种面向对象的高级动态可解释型脚本语言。
38 3
|
4月前
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
【7月更文挑战第26天】在 Web 开发中, SQL 注入与 XSS 攻击常令人担忧, 但掌握正确防御策略可化解风险. 对抗 SQL 注入的核心是避免直接拼接用户输入至 SQL 语句. 使用 Python 的参数化查询 (如 sqlite3 库) 和 ORM 框架 (如 Django, SQLAlchemy) 可有效防范. 防范 XSS 攻击需严格过滤及转义用户输入. 利用 Django 模板引擎自动转义功能, 或手动转义及设置内容安全策略 (CSP) 来增强防护. 掌握这些技巧, 让你在 Python Web 开发中更加安心. 安全是个持续学习的过程, 不断提升才能有效保护应用.
55 1
|
4月前
|
安全 网络协议 网络安全
Python Socket编程大揭秘:从菜鸟到黑客的进阶之路,你准备好了吗?
【7月更文挑战第27天】Python Socket编程是网络开发的关键技能,它开启从简单数据传输到复杂应用的大门。Socket作为网络通信的基础,通过Python的`socket`模块可轻松实现跨网通信。
52 0