PyQt5:将QLineEdit与QFileDialog绑定

时间:2019-01-30 06:46:03

标签: python python-3.x user-interface pyqt pyqt5

我一直在尝试为我的实验室同事创建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:
            ...

see the main window image

1 个答案:

答案 0 :(得分:0)

已解决:

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 how to make QLineEdit clickable