我正在尝试使用PyQt5在python代码上实现GUI。我想出了如何使用按钮以及如何将它们连接到功能。
按钮b3调用“SelectFile”函数
self.b3.clicked.connect(self.SelectFile)
def SelectFile(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
filename = QFileDialog.getOpenFileName(self, "Select file", "", "TMY3 files (*.epw)", options=options)[0]
print(filename)
return filename
我遇到的问题是我希望“SelectFile”返回文件的路径,然后将该路径用于另一个按钮调用的另一个函数。我怎样才能做到这一点?
例如,
self.b1.clicked.connect(self.btn_clk)
def btn_clk(self):
sender = self.sender()
if sender.text() =='Print':
test = filename
print(test)
“filename”未传递给“btn_clk”,我不知道该怎么做。 我试图在“btn_clk”的定义和其他尝试中输入“filename”,但没有任何效果。
由于
答案 0 :(得分:0)
def SelectFile(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
filename = QFileDialog.getOpenFileName(self, "Select file", "", "TMY3 files (*.epw)", options=options)[0]
print(filename)
self.b1_filename = filename
return filename
self.b1.clicked.connect(self.btn_clk)
def btn_clk(self):
sender = self.sender()
if sender.text() =='Print':
test = self.b1_filename
print(test)
答案 1 :(得分:0)
只需将它存放在课堂上,它就可以了。使用下面的代码进行测试。您可以调整以适应您的代码。
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
class TestSelectFile(QDialog):
def __init__(self):
QDialog.__init__(self)
self.layout = QVBoxLayout()
self.selectfilebutton = QPushButton('Select file')
self.printpathbutton = QPushButton('Press to print')
self.setLayout(self.layout)
self.layout.addWidget(self.selectfilebutton)
self.layout.addWidget(self.printpathbutton)
self.selectfilebutton.clicked.connect(self.getpath)
self.printpathbutton.clicked.connect(self.printpath)
def getpath(self):
self.path = QFileDialog.getOpenFileName(self,caption='Get a path from',filter='All Files(*.*)')
def printpath(self):
print(self.path)
app = QApplication(sys.argv)
dialog = TestSelectFile()
dialog.show()
app.exec_()