【问题标题】:Autocomplete in wxpython if load from xrc如果从 xrc 加载,则在 wxpython 中自动完成
【发布时间】:2013-03-20 12:16:56
【问题描述】:

我正在尝试在 wxpython 中使用 xrc 资源。 这很好,但是一个很大的“不”在哪里 - 没有来自 xrc 的 wxFrame 类加载的自动完成。其他的也从 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")

【问题讨论】:

    标签: autocomplete wxpython xrc


    【解决方案1】:

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

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

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

    【讨论】:

    • 我正在使用 Eclipse/PyDev 和 SPE。所以我认为 XRC 中真的没有自动完成功能......
    【解决方案2】:

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

    不幸的是,我们无法将“类型”分配给 Python 中的变量以使自动完成功能起作用。

    但在 Eclipse + PyDev 插件中

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

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

    自动完成在此语句之后起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-10
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 2012-01-27
      • 1970-01-01
      相关资源
      最近更新 更多