我试图使用另一个函数的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
有人在这里看到错误吗?
答案 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
()