【问题标题】:Alternative for tkinter's askopenfilenametkinter 的 askopenfilename 的替代方案
【发布时间】:2012-06-17 10:48:20
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    你可以试试 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

    【讨论】:

    • 谢谢!但是我忘了说我用的是python3,我明白wxPython还不可用?
    • 这取决于。如果你在 windows 或 darwin 上已经有 py3k 的快照 (project phoenix)
    • 请回答是否有用,您应该接受这个问题
    【解决方案2】:

    禅意

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

    另见Zenity's man pages

    最简单的形式:


    #!/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,正如人们所期望的那样,它会产生完美的本地文件选择器对话框窗口。

    【讨论】:

      猜你喜欢
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      • 2020-11-11
      • 2015-11-19
      • 2018-12-06
      • 2015-03-03
      • 2015-09-25
      • 2019-12-16
      相关资源
      最近更新 更多