Включение wx.lib.platebtn в файл XRC?
Знаете ли вы, как включить виджет wx.lib.platebtn.PlateButton в файл xrc?
До сих пор я нашел только способ включения виджетов, которые также являются общими для wxWidgets, но я думаю, что этот специфичен для wxpython (хотя я могу ошибаться).
Я попытался понять демо для XmlResourceHandler, но это сделано только для панелей. Я не мог найти хорошие учебники с этим конкретным случаем, пока.
Я был бы благодарен за любые советы, которые вы, ребята, можете предложить, или за ссылку на хороший учебник.
Большое спасибо.
2 ответа
Хорошо, ребята,
Я отвечу на свой вопрос ради завершения. Афаик, невозможно добавить табличку в файл XRC, но, как предложил Майк Дрисколл (спасибо, связка, мужик!), Можно вставить "неизвестную" переменную, если хотите, заполнитель, в файл XRC в месте, которое вы хотите. как показано чуть ниже:
<object class="unknown" name="A_Name">
<variables></variables>
</object>
После этого я вошел в пример кода и ввел код, мало чем отличающийся от приведенного ниже (очевидно, он сделан общим для вашего удобства просмотра). Кажется, до сих пор это работает, но я не смог изменить какие-либо настройки, сделанные на self.MyBtn, и только флаги, казалось, имели какой-то эффект, но это также могло быть чем-то специфичным для моих настроек sizer. Если вы не думаете, что это так, не стесняйтесь, дайте мне знать. Меня всегда интересуют лучшие, более эффективные или более элегантные решения.
class MyFrame(wx.Frame):
def __init__(self, parent):
self.res = xrc.XmlResource("my_xrc_file.xrc")
self.frame = self.res.LoadFrame("MyFrame")
imageFile = "/a/path/to/your/file"
png = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.MyBtn = wx.lib.platebtn.PlateButton(self.frame, bmp=png,
style=platebtn.PB_STYLE_TOGGLE|platebtn.PB_STYLE_DEFAULT)
self.PlateBtn = self.res.AttachUnknownControl("MyBtn",
self.MyBtn, self.frame) # this returns a bool
Я надеюсь, что это поможет некоторым из вас.
Насколько я помню, в XRC есть способ определить свои собственные виджеты, но я не могу вспомнить, где я об этом читал. Может быть, проверить ссылки в конце следующей статьи: http://www.blog.pythonlibrary.org/2010/10/28/wxpython-an-xrced-tutorial/
Я знаю, что вы можете использовать редактор XRC, который поставляется с демонстрационной версией wxPython, чтобы добавить "неизвестный" элемент управления. Вы можете сделать это таким образом. См. http://wiki.wxpython.org/UsingXmlResources или ответ Робина Данна здесь: https://groups.google.com/forum/?fromgroups