pyqt打开文件和筛选问题

如何实现点击“打开”按钮。不显示窗口就能直接打开指定excel,显示内容?

img

img

pyqt tabelwidget里的内容怎么增加筛选功能?

img

望解答。

 在Ubuntu18.04上,用https://so.csdn.net/so/search?q=pyqt5&spm=1001.2101.3001.7020写的项目,想在里面实现打开文件选择框的功能,pyqt5的实现借助QFileDialog,代码为:

  1. # 这段代码在网上很多,也不知道哪个是原版了。。。
  2. def msg(self):
  3. directory1 = QFileDialog.getExistingDirectory(self,
  4. "选取文件夹",
  5. "./") #起始路径
  6. print(directory1)
  7. fileName1, filetype = QFileDialog.getOpenFileName(self,
  8. "选取文件",
  9. "./",
  10. "All Files (*);;Text Files (*.txt)") #设置文件扩展名过滤,注意用双分号间隔
  11. print(fileName1,filetype)
  12. files, ok1 = QFileDialog.getOpenFileNames(self,
  13. "多文件选择",
  14. "./",
  15. "All Files (*);;Text Files (*.txt)")
  16. print(files,ok1)
  17. fileName2, ok2 = QFileDialog.getSaveFileName(self,
  18. "文件保存",
  19. "./",
  20. "All Files (*);;Text Files (*.txt)")

但是在实际运行时,发现打开文件框时只能在home目录下,无法直接到达指定目录,返回的filename也不是文件完整路径,而是“run/...../filename”。

pyqt5自带的实现不了,就退到Python的方式实现吧。Python是由tkinter实现该功能,首先安装包:

  1. sudo apt-get install python-tk
  2. # 如果是Python3
  3. sudo apt-get install python3-tk

实现代码:

  1. from tkinter import *
  2. import tkinter.filedialog
  3. # 前两行是为了解决运行时,tk会弹出小窗口这一问题
  4. root = tkinter.Tk()
  5. root.withdraw()
  6. # 其中,title为文件选择框的标题,filetypes为需要显示的文件类型,initialdir为默认文件路径
  7. filename = tkinter.filedialog.askopenfilename(title='选择.nov文件', filetypes=[('Nov', '.nov')],
  8. initialdir=(os.path.expanduser(GlobalDefines.case_generate_path)))

效果图:

</article>