PYQT5写代码遇到button执行两遍的情况,记录一下

问题就是按UI上的按钮会导致按钮对应的槽函数执行两边的情况

 

大概有问题的代码:

class MainCode(QMainWindow,Excel_Data_Select_UI.Ui_MainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        Excel_Data_Select_UI.Ui_MainWindow.__init__(self)
        self.setupUi(self)
        self.selectButton.clicked.connect(self.openfile)
        self.saveButton.clicked.connect(self.saveconf)
        self.runButton.clicked.connect(self.runprograme)
        
    def openfile(self):
        openfile_name = QFileDialog.getOpenFileName(self,'选择文件','./','Excel file(*.xlsx;*.xls;);;csv file(*.csv)')
        openfile_name = openfile_name[0].replace('/','\\')
        #openpath_name = QFileDialog.getExistingDirectory(self,"请选择要更改的EXCEL文件所在的文件夹","D:/")
        #openpath_name = openpath_name.replace('/','\\')
        print(openfile_name)
        #用\替换/
        self.EXCEL_lineEdit.setText(openfile_name)

查询了网上的解决办法,大概有下面两种

方法一:

办法是给对应函数前加上装饰器 @pyqtSlot()

记得导入from PyQt5.QtCore import pyqtSlot

方法二:

是看有文章说是因为满足了以on_开头,以“_”+行为(如_clicked)结束,就会触发QT的自动连接机制,不需要再connect,不过我这也没有这样命名。如果有这样命名的导致槽函数执行了两次,改名字就是了

 

最后神奇的是我我加了装饰器然后再删了,也变正常了,醉了~~

后面再研究研究

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值