目前我在 Ubuntu 的快速列表编辑器中使用tkinter
's来获取文件的名称和位置。askopenfilename
虽然它工作正常,但外观和感觉不是原生的。
是否有一个简单的替代对话窗口来导航和获取文件的名称和位置?
目前我在 Ubuntu 的快速列表编辑器中使用tkinter
's来获取文件的名称和位置。askopenfilename
虽然它工作正常,但外观和感觉不是原生的。
是否有一个简单的替代对话窗口来导航和获取文件的名称和位置?
您可以尝试使用 wxPython FileDialog:
>>> import wx
>>> d = wx.FileDialog(None)
>>> d.ShowModal()
5101
>>>
它提供了更特定于操作系统的外观
wxPython 即将作为 Phoenix 项目到达 py3k,并且已经有 windows 和 mac 的快照(请参阅下面的我的评论)。如果你想要更稳定的东西,你可以使用 pyQt QtGui.QFileDialog
。
import sys
from PyQt4 import QtGui
class Dialog(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__()
filename = QtGui.QFileDialog.getOpenFileName()
print filename
app = QtGui.QApplication(sys.argv)
dialog = Dialog()
你有一个更完整的例子here。
Zenity 的文件选择对话框通过选项提供了一个简单且具有原生外观的解决方案--file-selection
。该对话框提供了许多选项。
另请参阅Zenity 的手册页。
最简单的形式:
#!/usr/bin/env python3
import subprocess
try:
file = subprocess.check_output(["zenity", "--file-selection"]).decode("utf-8").strip()
print(file)
except subprocess.CalledProcessError:
pass
另一种选择是Gtk 的 FileChooserDialog,正如人们所期望的那样,它会产生完美的本地文件选择器对话框窗口。