Рубрики
Без рубрики

wxpython: показаны 2 филеки в wx.filedialog

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

На днях на канале IRC WXPYPHON на Freenode один из членов там спросил, был ли способ сделать WX.FileDialog отображать более одного типа файла за раз. В затылке я думал, что видел продукт Microsoft, который мог бы сделать это, но я никогда не видел никаких примеров WXPYPHON. В этом коротком руководстве вы узнаете, как сделать этот удобный трюк!

Вот код, который вам понадобится:

import wx

wildcard = "Python source (*.py; *.pyc)|*.py;*.pyc|" \
         "All files (*.*)|*.*"

########################################################################
class MyForm(wx.Frame):
 
    #----------------------------------------------------------------------
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY,
                          "Multi-file type wx.FileDialog Tutorial")
        panel = wx.Panel(self, wx.ID_ANY)
        
        btn = wx.Button(panel, label="Open File Dialog")
        btn.Bind(wx.EVT_BUTTON, self.onOpenFile)
        
     #----------------------------------------------------------------------
    def onOpenFile(self, event):
        """
        Create and show the Open FileDialog
        """
        dlg = wx.FileDialog(
            self, message="Choose a file",
            defaultFile="",
            wildcard=wildcard,
            style=wx.OPEN | wx.MULTIPLE | wx.CHANGE_DIR
            )
        if dlg.ShowModal() == wx.ID_OK:
            paths = dlg.GetPaths()
            print "You chose the following file(s):"
            for path in paths:
                print path
        dlg.Destroy()
        
#----------------------------------------------------------------------
# Run the program
if __name__ == "__main__":
    app = wx.App(False)
    frame = MyForm()
    frame.Show()
    app.MainLoop()

Ключ в этом коде находится в подстановочный знак Переменная. Посмотрите внимательно на него, и вы заметите, что там есть несколько сальтоны. Полутолон во второй половине первой строки – это то, о чем мы заботимся. Он говорит диалогу просто показать * .py и * .pycc. Да, это действительно так просто. Первая половина может быть все, что вы хотите, но рекомендуется, чтобы вы сообщили своим пользователям, какие типы файлов они могут ожидать, что это вернется.

Это все, что есть к этому. Обязательно сохраните этот трюк в глубине души, когда вы идете, чтобы создать свои собственные диалоги файла. Возможно, вам просто понадобится!