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

标签 python qt pyqt qt-designer

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

最佳答案

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

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

到目前为止,插槽已创建,可以在信号和插槽编辑器 选项卡中使用它。进入此选项卡后,单击 + 按钮,如果正确完成上一步,就会出现 Receiver 插槽,如下所示:

最后,将请求的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_()

关于python - 如何创建信号以在 Qt Designer 中打开 QFileDialog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42046092/

相关文章:

python - 使用 Python 修改 PCAP

c++ - 处理 char 到 QString 转换中的 ASCII 字符

c++ - CheckRemoteDebuggerPresent 在 MingW 中不存在

python - 触发和更新停靠窗口

python - PyQt5 QLine setInputMask + setValidator IP 地址

c# - 无需手写 JavaScript 的 AJAX Web 应用程序

python - ImportError:无法从部分初始化的模块 'dcc' 导入名称 'dash' - python

Python 3 TCP/IP ascii 命令

c++ - 编译器之间的 qt dll 兼容性

python - 在 Python3 中将小部件应用程序作为线程启动?