在Qt Designer 5中,如何创建信号以打开QFileDialog
?我正在使用Python和PyQt。我尝试使用“编辑信号/插槽”创建信号,我可以选择我想要的按钮作为发送者,但我不能选择任意函数作为接收器,列表中只有现有的小部件可用。
答案 0 :(得分:3)
为了创建自定义信号/插槽以便以后在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_()