【问题标题】:PyQt5: binding QLineEdit with QFileDialogPyQt5:将 QLineEdit 与 QFileDialog 绑定
【发布时间】:2019-01-30 06:46:03
【问题描述】:

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

【问题讨论】:

  • 你能给出一个代码示例来更好地理解你的问题吗?
  • 我添加了一些代码和主窗口的图像。
  • 似乎是 UI 设计问题。如果您在底部只有一个 QTextEdit,然后是一组带有选项(Ref、Forward、Reverse)的单选按钮,以便用户可以选择一个并执行某些操作,该怎么办?
  • 我之前确实想过,但我不知道是否用户友好,这就是为什么我一直试图将单选按钮功能集成到 QLineEdit 但我会看到的。感谢您的评论。

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


【解决方案1】:

已解决:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多