2013-03-20 3 views
0

Я пытаюсь работать с ресурсом xrc в wxpython. Это хорошо, но где одно большое «нет» - нет автозаполнения класса wxFrame для загрузки из xrc. И другие загружаются из классов xrc тоже.Автозаполнение в wxpython, если загрузка из 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") 

ответ

0

Ну, насколько хорошо функция автозаполнения полностью зависит от редактора/IDE, который вы используете. Вы не указали, что используете для написания скриптов python, но из личного опыта я бы сказал, что это, вероятно, правда, что нет автозаполнения.

Я использовал Eclipse/PyDev, Spyder, SPE и PyCharm в прошлом, и все они не отображали возможности автозаполнения виджета, созданного с помощью XRC. Вы все равно можете попытаться запустить автозаполнение Emacs для Python и попробовать его там, но я сомневаюсь, что он сработает.

Я не нашел в этом особого препятствия, но все разные, я думаю. Надеюсь, это ответит на ваш вопрос.

+0

Я использую Eclipse/PyDev и SPE. Поэтому я думаю, что в XRC нет полностью автозаполнения ... – Viktor

0

Да, автозаполнение не работает здесь, так как наш код не знает, что будет возвращать xrc. Ваш код узнает о типе переменной (в данном случае, фрейме) только во время выполнения.

И, к сожалению/к счастью, к сожалению, мы не можем присвоить «тип» переменной в Python для работы автозаполнения.

Но в Затмении + Pydev плагин

Вы можете добавить это заявление для автозаполнения работы:

утверждает isinstance (self.frame, wx.Frame)

автозаполнения работает после этого заявления.

Смежные вопросы