问题1:如何打开系统自带的选择窗口
网上查了好多资料,大约有3个种方法
1.调用tkinter调用响应的api
2.调用系统自带的貌似叫win32的,调用api
3.调用pyside2的内置方法。【这也是我想使用的】
原因:本来pyside2的库就很大,如果封装不同的包,会导致软件很大,最好是界面统一风格,不容易出现bug.
如何操作:
第一步:
from PySide2.QtWidgets import QFileDialog #导入对应的库函数
如果有其他需求的,请看网站>>>http://www.python3.vip/tut/py/gui/qt_05/
找到对应的控件,然后查看指令
第二步:
在func函数中,加入对象返回值
filePath = QFileDialog.getExistingDirectory(self.ui, "选择存储路径")
第三部:
打印或者处理filePath
print('FilePath:',filePath)
第四步:
标准流程走一波:
app = QApplication([])
stats = Stats()
stats.ui.show()
app.exec_()
我自己的代码:
由于我自己写了窗口,使用了动态ui加载,如果直接粘贴肯定无法运行。需要在自定义的部分进行调整
from PySide2.QtWidgets import QApplication, QFileDialog # 封装了所有库函数
from PySide2.QtUiTools import QUiLoader
# 用来处理Ui窗口无法被调用的问题
import os
import PySide2
dirname = os.path.dirname(PySide2.__file__)
plugin_path = os.path.join(dirname, 'plugins', 'platforms')
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path
class Stats():
def __init__(self):
# 从文件中加载UI定义
self.ui = QUiLoader().load('excel_open.ui')
self.ui.Button_excel.clicked.connect(self.file_path)
def file_path(self):
filePath = QFileDialog.getExistingDirectory(self.ui, "选择存储路径")
print('FilePath:',filePath)
app = QApplication([])
stats = Stats()
stats.ui.show()
app.exec_()