亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在pyqt5中單擊按鈕之前瀏覽按鈕方法觸發

在pyqt5中單擊按鈕之前瀏覽按鈕方法觸發

蕭十郎 2022-12-06 15:33:47
我在 UI 中有瀏覽按鈕,單擊它會觸發打開文件對話框。我的問題是打開文件對話框甚至在單擊瀏覽按鈕之前就已觸發。下面是我的代碼class GisedifySupportDialog(QtWidgets.QDialog, FORM_CLASS):def __init__(self, parent=None):    """Constructor."""    super(GisedifySupportDialog, self).__init__(parent)    self.setupUi(self)    self.img_upload=Upload_Image()    self.img_upload.setupUi(self.upload_image_dialog)    self.img_upload.pushButton.clicked.connect(self.browseTheFileAudio(self.img_upload.lineEdit))def browseTheFileAudio(self,lineedit_name):    self.fileName = QtWidgets.QFileDialog.getOpenFileName(self, "Browse for the file", os.getenv("HOME"))    self.fileName=self.fileName    lineedit_name.setText(str(self.fileName))    return self.fileName為什么 briwseTheFileAudio 函數在單擊按鈕之前就觸發了?
查看完整描述

1 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

當你說:

self.img_upload.pushButton.clicked.connect(self.browseTheFileAudio(self.img_upload.lineEdit))

您正在調用函數browseTheFileAudio,并且該函數的返回值被傳遞給pushButton.clicked.connect。那不是你想要的。您希望將函數對象(而不實際調用它)傳遞給pushButton.clicked.connect,您只想在單擊按鈕時觸發它。這就是您綁定回調的方式。

鑒于您的回調還需要一個參數,您可以使用 lambda:

self.img_upload.pushButton.clicked.connect(lambda le=self.img_upload.lineEdit: self.browseTheFileAudio(le))



查看完整回答
反對 回復 2022-12-06
  • 1 回答
  • 0 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號