无法从另一个函数调用用wxPython构建的打开文件窗口函数

时间:2016-09-06 00:39:15

标签: python-2.7 wxpython

我试图使用另一个函数的wxPython调用打开的文件窗口:

add_handler

代码由于某种原因不起作用,但如果直接在文件中调用它,则它可以工作,如下所示:

import wx
class get_path:
    def __init__(self):
        self.get_path('*.txt')
    def getPath(wildcard):
        app = wx.App(None)
        style = wx.FD_OPEN | wx.FD_FILE_MUST_EXIST
        dialog = wx.FileDialog(None, 'Open', wildcard=wildcard, style=style)
        if dialog.ShowModal() == wx.ID_OK:
            path = dialog.GetPath()
        else:
            path = None
        dialog.Destroy()
        return path

有人在这里看到错误吗?

1 个答案:

答案 0 :(得分:0)

您使用tasks: - name: This option script: "./getIt.py -s {{ myhostname }} -u {{ myuser }} -p {{ mypass }}" register: script when: user_option == 'L' - name: stdout of getIt debug: msg={{ script.stdout }} when: script is defined and script|succeeded ,但您定义了self.get_path()个不同的名称。你在def getPath()忘记了self。构造函数不能返回值,因此您必须创建对象,然后调用可以返回值的方法。

BTW:将CamelCase名称用于类名

def get_path(self, wildcard)

或者您可以创建静态方法,然后您不必创建对象 - import wx class MyGetPath: # use CamelCase names for classes def get_path(self, wildcard): app = wx.App(None) style = wx.FD_OPEN | wx.FD_FILE_MUST_EXIST dialog = wx.FileDialog(None, 'Open', wildcard=wildcard, style=style) if dialog.ShowModal() == wx.ID_OK: path = dialog.GetPath() else: path = None dialog.Destroy() return path result = MyGetPath().get_path('*.txt') print(result) 没有MyGetPath

()