如何创建信号以在 Qt Designer 中打开 QFileDialog?

Kol*_*l00 3 python qt pyqt qt-designer

在 Qt Designer 5 中,如何创建信号以打开QFileDialog? 我正在使用 Python 和 PyQt。我尝试使用“编辑信号/插槽”创建信号,我可以选择我想要的按钮作为发送者,但我不能选择任意函数作为接收者,列表中只有现有的小部件可用。

jgo*_*gui 5

为了创建自定义信号/插槽以供以后在 Python 应用程序中使用,您需要添加它们,右键单击小部件并单击更改信号/插槽...,如下图所示:

您需要添加所需的slot,如此处所示的mybutton_clicked()函数:

到目前为止,插槽已创建,并且可以在Signals & Slots Editor选项卡中使用它。进入此选项卡后,单击+按钮,如果上一步正确完成,接收器插槽就会出现,如下所示:

最后,将请求集成QFileDialog到按钮按下方法中,就像这样简单:

from PyQt5.QtWidgets import QMainWindow, QApplication, QFileDialog
from PyQt5 import uic
import sys


form_class = uic.loadUiType("mainWindow.ui")[0]  # Load the UI

class MyWindowClass(QMainWindow, form_class):
    def __init__(self, parent=None):
        QMainWindow.__init__(self, parent)
        self.setupUi(self)

    def mybutton_clicked(self):
        options = QFileDialog.Options()
        fileName, _ = QFileDialog.getOpenFileName(self,"QFileDialog.getOpenFileName()", "","All Files (*)", options=options)
        if fileName:
            print(fileName)

app = QApplication(sys.argv)
myWindow = MyWindowClass(None)
myWindow.show()
app.exec_()
Run Code Online (Sandbox Code Playgroud)

  • 或者,您可以绕过所有设计器的繁琐操作,只需将行 `self.mybutton.clicked.connect(self.mybutton_clicked)` 添加到 `__init__()` 的末尾。 (2认同)