以下功能均由单独QPushButton
的单击信号激活。我想让用户可以选择.pdf
文件,执行一些特定于程序的编辑并将其保存到用户定义的位置。
如何才能将.pdf
的路径传递给另一个函数?
def select(self):
dir = "."
fileObjOpen = QFileDialog.getOpenFileName(self, "Select a .pdf file", dir=dir, filter="PDF Files (*.pdf)")
fileObjOpenName = fileObjOpen[0]
if (len(fileObjOpenName) > 1):
path_to_pdf = fileObjOpenName
def save(self):
dir = "."
fileObjSave = QFileDialog.getSaveFileName(self, "Where to save the new pdf file", dir=dir, filter="PDF Files (*.pdf)")
fileNameSave = fileObjSave[0]
if (len(fileNameSave) > 1):
path_to_pdf = path_to_pdf
答案 0 :(得分:2)
我对pyside
一无所知,但似乎你正在使用一个类,因为self
是你的每个函数的第一个参数。如果是这种情况,您可以将path_to_pdf
设置为类实例上的属性。
e.g。
def select(self):
#snip ...
if len(fileObjOpenName) > 1:
self.path_to_pdf = fileObjOpenName
def save(self):
#snip ...
if len(fileNameSave) > 1:
path_to_pdf = self.path_to_pdf
如果我可怕地误解了这个,请告诉我,我会删除我的答案。
答案 1 :(得分:1)
确保您的函数返回某些内容......:
def select(self):
...
(filename, fileselector) = QFileDialog.getOpenFileName(...)
if filename:
return filename
return
默认情况下,select
与Python中的任何方法或函数一样,将返回None
,因此最后return
是多余的(但我喜欢显示它实际结束的位置)。< / p>
现在,您可以将other_function
称为other_function(YourWidget.select())
。
您还可以将.select()
的输出存储在QWidget