簡體   English   中英

PyQt5:將QLineEdit與QFileDialog綁定

[英]PyQt5: binding QLineEdit with QFileDialog

我一直在嘗試為實驗室同事創建GUI程序。

我的主窗口上有一些文本框,用於顯示用戶添加的文件目錄。

我是PyQt5的新手,我想在文本框中添加功能。

例如,textbox = QLineEdit().. textbox1 = .. textbox2 = ..

因此,在單擊主窗口添加文件之前,我想選擇文本框,然后將文件目錄寫入正確的文本框。

我嘗試進行自定義clickablelineedit,但未成功。

還有另一種方法嗎?

國王的問候,

編輯:

class Mutation_Finder():
    def __init__(self):
        ... (Main Window Code)
    def openFileNamesDialog(self, **kwargs):
        self.options = QFileDialog.Options()
        self.options |= QFileDialog.DontUseNativeDialog
        self.files, self._= QFileDialog.getOpenFileNames(self,"Dosya Ac","","All Files (*);;.abi,.fasta (*.abi,*fasta)", options=self.options)
    def toDoSomething():
        if textbox is clicked:
            for i in range(len(self.files):
                self.textbox.insert(self.files[i])
        if textbox1 is clicked:
            ...
        if textbox2 is clicked:
            ...

查看主窗口圖像

解決了:

class cQLineEdit(QLineEdit):
    clicked=pyqtSignal()

    def __init__(self,*args, **kwargs):
        super().__init__(*args,**kwargs)

    def mousePressEvent(self,QMouseEvent):
        self.clicked.emit()

class MainClass(cQLineEdit)
    textbox=cQLineEdit(self)
    ....
    ....
    self.clicked.connect(...)

我用這種方法解決了它,但單擊事件仍然有問題,因為當我從QLineEdit中單擊時出現錯誤:

self.clicked.emit()AttributeError:“ className”沒有簽名為clicked()的信號

這樣,我也不知道該如何處理。

除此之外,這里是與解決方案相關的鏈接。 Pyqt 5如何使QLineEdit可點擊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM