我正在使用Python 3.6和pyqt5开发文件选择对话框。该对话框的基本思想是它可以选择在预览文件之前进行选择。它可以预览任何类型的已注册Windows文件。设计使用QtDesigner MainWindow完成。 现在我可以从另一个pyqt / python3文件打开这个预览文件浏览器。但是如何从该脚本中检索所选的文件名和文件路径? 这是我打开预览浏览器文件的测试文件:
class TestBrowser(QtWidgets.QMainWindow, design.Ui_MainWindow):
def __init__(self,browser):
super(self.__class__, self).__init__()
self.setupUi(self) # This is defined in design.py file automatically
# It sets up layout and widgets that are defined
self.browser=browser
self.pushButton.clicked.connect(self.dario)
def dario(self):
self.browser.exec_()
def main():
app = QApplication(sys.argv)
browser=bd.BrowserDialog()
main=TestBrowser(browser)
main.show()
sys.exit(app.exec_())
if __name__ == '__main__': # if we're running file directly and not importing it
main()
答案 0 :(得分:0)
我个人在不同的.py文件中使用全局变量(出于理智目的),当我遇到“如何从另一个类/函数/某个东西中移动一个值”时,会出现这样的事情。
关于新的.py文件:
file_name = None
file_path = None
# Save function
def save_filename(selected_file, selected_path):
global file_name, file_path
file_name = selected_file
file_path = selected_path
选择文件时,在浏览器中添加:
mynewpyfile.save_filename(file, path)
然后,您可以从主窗口获取文件数据:
self.pushTestbutton.clicked.connect(self.do_something)
def do_something(self):
print("the selected file is" + mynewpyfile.file_path + "/" + mynewpyfile.file_name)
其他替代方案: http://doc.qt.io/qt-5/qfiledialog.html
在这种方法中,你只需添加一个QlineEdit并且......尽管有限,但这并不容易。
self.lineTest.setText(QtWidgets.QFileDialog.getOpenFileName()[0])