替代tkinter的askopenfilename

时间:2012-06-17 10:48:20

标签: python-3.x ubuntu tkinter file-browser

目前我在Ubuntu的快速列表编辑器中使用tkinter的{​​{1}}来获取文件的名称和位置。虽然它工作正常,但外观并不是原生的。

是否有一个简单的替代对话窗口,导航并获取文件的名称和位置?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用wxPython FileDialog:

>>> import wx
>>> d = wx.FileDialog(None)
>>> d.ShowModal()
5101
>>> 

它提供了更具操作系统的外观

wxPython即将到达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

答案 1 :(得分:0)

Zenity

Zenity的File Selection Dialog使用--file-selection选项提供简单且原生的解决方案。该对话框提供了许多选项。

另见Zenity's man pages

最简单的形式:

enter image description here


#!/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

另一个选项是Gtk's FileChooserDialog,它可以产生完全原生的文件选择器对话窗口。