【Python PyQt5 中combobox用clear()崩溃的问题及解决】

本文详细描述了在使用PyQt5中的QCombobox时,如何避免因clear()操作导致程序崩溃的问题。作者分享了解决方案,即在调用clear()前后分别断开和重新连接currentTextChanged槽函数,确保程序稳定运行。
摘要由CSDN通过智能技术生成

Python PyQt5 中combobox用clear()崩溃的问题及解决

今天使用QCombobox控件时,使用clear()清空下拉列表时,程序崩了,在本站搜索了好久,都没有很好解决,只是看到要用disconnect方法解除函数的绑定,但没有实际解决我的问题。经过思考和一步一步调试,解决了问题,直接上程序
修改前

    def __init__(self):
        super(***********, self).__init__()
        super().__init__()
        self.setupUi(self)
		self.plan_num.currentTextChanged.connect(lambda:self.show_deploy(self.plan_num.currentText()))
		
    def plan_change(self, text):
       self.plan_num.clear()
       self.plan_num.addItem("请选择")
       result = service.query('select plan_num from plan_sheet where plan_model=%s', text)
       for i in result:
           self.plan_num.addItem(i[0])

解决办法
修改 plan_change 函数
如下

    def plan_change(self, text):
        self.plan_num.currentTextChanged.disconnect()
        self.plan_num.clear()
        self.plan_num.addItem("请选择")
        result = service.query('select plan_num from plan_sheet where plan_model=%s', text)
        for i in result:
            self.plan_num.addItem(i[0])
        self.plan_num.currentTextChanged.connect(lambda: self.show_deploy(self.plan_num.currentText()))

对比一下该函数修改前和修改后
在函数开始先解除槽函数的绑定

	self.plan_num.currentTextChanged.disconnect()

函数末尾再将槽函数重新连接即可

	self.plan_num.currentTextChanged.connect(lambda: self.show_deploy(self.plan_num.currentText()))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzlxlzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值