如果从xrc加载,则在wxpython中自动完成

时间:2013-03-20 12:16:57

标签: autocomplete wxpython xrc

我正在尝试使用wxpython中的xrc资源。 它很好,但是一个大的“不” - 没有从xrc自动完成wxFrame类loadet。还有其他从xrc类加载的。

这是对的还是我做的事情错了?

这是代码的一部分,例如:

import wx
from wx import xrc

class MyApp(wx.App):
    def OnInit(self):
        if os.path.exists("phc.xrc"):
            self.res = xrc.XmlResource("phc.xrc")

            self.frame = self.res.LoadFrame(None, 'MyFrame')
            self.list_box = xrc.XRCCTRL(self.frame, "list_box_1")
            self.notebook = xrc.XRCCTRL(self.frame, "Notebook")
            self.StatusBar= xrc.XRCCTRL(self.frame, "MFrame_statusbar")
            self.list_ctrl= xrc.XRCCTRL(self.frame, "list_ctr_1")

2 个答案:

答案 0 :(得分:0)

嗯,自动完成功能的好坏完全取决于您使用的编辑器/ IDE。您没有指定用于编写python脚本的内容,但根据个人经验,我会说可能是真的,没有自动完成。

我过去使用过Eclipse / PyDev,Spyder,SPE和PyCharm,他们都没有显示使用XRC自动完成小部件的能力。您仍然可以尝试让Python的Emacs自动完成工作并在那里尝试,但我怀疑它会起作用。

我没有发现这是一个特别的障碍,但我想每个人都不一样。希望这能回答你的问题。

答案 1 :(得分:0)

是自动完成在这里不起作用,因为我们的代码不知道xrc将返回什么。您的代码仅在运行时才了解变量的类型(在本例中为框架)。

不幸的是,幸运的是,我们无法在Python中为变量分配'type'以使自动完成工作。

但是在Eclipse + PyDev插件中

您可以添加此语句以自动完成工作:

断言isinstance(self.frame,wx.Frame)

自动完成功能在此声明之后起作用。

相关问题