我想动态地从一些外部数据源创建GUI。源将显示其内部结构,如字段,包括数据类型、初始值、最小最大值等,以及一些可由(远程)数据对象处理的操作。应该将结构转换为文本控件和按钮,这些控件和按钮应该动态地从GUI中添加和删除。这就像使用XRC加载GUI的一部分一样,所以我想知道我是应该使用XRC还是自己编写代码。使用XRC将使测试和使用替代数据源更容易。生成XRC相当容易。因此,我现在有以下两个问题:
发布于 2012-06-22 14:26:58
在进行了一些实验之后,看起来XmlResource需要一个文件或类似文件的对象。我不知道为什么您不能只使用一些文件,但是如果这是您想要避免的事情,那么您可能可以通过创建类似文件的对象来做到这一点。见StringIO或http://pypi.python.org/pypi/filelike/0.3.3/
发布于 2012-07-18 23:30:00
你需要这样称呼它:
res = wx.xrc.EmptyXmlResource() #Here it is
res.LoadFromString(resourceText)下面是一个例子。
import wx, wx.xrc
resourceText = '''<?xml version="1.0" encoding="UTF-8"?>
<resource>
<object class="wxPanel" name="MyPanel">
<object class="wxStaticText">
<size>80,-1</size>
<label>Hey</label>
</object>
</object>
</resource>
'''
class TestFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, 'Testing',
size=(640,480))
res = wx.xrc.EmptyXmlResource() #Here it is
res.LoadFromString(resourceText)
panel = res.LoadPanel(self, "MyPanel")
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(panel, 1, wx.EXPAND|wx.ALL, 5)
self.SetSizer(sizer)
self.SetAutoLayout(True)
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = TestFrame(None)
frame.Show(True)
app.MainLoop()https://stackoverflow.com/questions/11157730
复制相似问题