PyQt5: связывание QLineEdit с QFileDialog - PullRequest
0 голосов
/ 30 января 2019

Я пытался создать программу 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:
            ...

см.изображение главного окна

1 Ответ

0 голосов
/ 02 февраля 2019

решено:

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(...)

Я решил это с помощью этого метода, но у меня все еще есть проблема с событием clicked, потому что когда я щелкаю из QLineEdit, у меня появляется Ошибка:

self.clicked.emit () AttributeError: 'className' не имеет сигнала с подписью clicked ()

вот так, а я нетесть идеи, как с этим справиться.

Кроме того, здесь есть ссылка, связанная с решением. Pyqt 5, как сделать QLineEdit кликабельным

...