代码拉取完成,页面将自动刷新
pip install xmlui
<App controller="MainController">
<Frame>
<Button name="ui_mybtn" label="按钮1" onclick="OnClickButton"></Button>
</Frame>
</App>
import xmlui
import wx
class MainController(xmlui.Controller):
def __init__(self):
pass
def after_load(self):
pass
def OnClickButton(self, evt):
wx.MessageBox(self.ui_mybtn.GetLabel())
def main():
app = xmlui.load_wx("wx_simple.xml", [MainController])
app.MainLoop()
if __name__ == '__main__':
main()
<SetBackgroundColour>wx.Colour(0,0,0)</SetBackgroundColour>
<Bind type="wx.EVT_BUTTON">OnClickButton</Bind>
MainController
,这个类有下面的成员:
xmlui.Controller.node
:对应的xml中的节点,这个例子里是wx.App的实例。after_load
:整个节点加载完的回调函数例如wx.Frame,wx.Button,wx.StaticText,wx.TextEntry等,都可以使用这样的配置方式
<App>
<Frame id="1000" style="wx.BORDER_SUNKEN">
<StaticText label="姓名"></StaticText>
<Button label="提交"></Button>
</Frame>
</App>
其中支持以下可选参数:
注意:这些参数会被传递到wx.Window的构造函数中,如果参数不正确,会导致wx内部抛出异常。例如给wx.Button传递title参数是不可以的,只能传递label参数。
举例如下:
<App>
<Frame controller="MainController">
<BoxSizer orient="v" proportion="0,1,0" flags="wx.EXPAND,wx.EXPAND,wx.EXPAND">
<Panel></Panel>
<Panel></Panel>
<Panel></Panel>
</BoxSizer>
</Frame>
</App>
BoxSizer支持以下可选参数:
<App controller="MainController">
<Frame sizer_orient="v">
<Panel name="panelA" sizer_proportion="0" sizer_flags="wx.EXPAND"></Panel>
<Panel name="panelB" sizer_proportion="1" sizer_flags="wx.EXPAND"></Panel>
<Panel name="panelC" sizer_proportion="0" sizer_flags="wx.EXPAND"></Panel>
</Frame>
</App>
sample目录中有两个布局例子:
都是使用BoxSizer进行布局的例子。
只有继承于wx.Window的类,才能绑定事件
<App>
<Frame>
<Button label="提交">
<Bind type="wx.EVT_BUTTON">OnClickButton</Bind>
</Button>
</Frame>
</App>
有些事件有onxxx简写形式,包括
<Button label="提交" onclick="OnClickButton">
<MenuItem onclick="OnMenuItem1"></MenuItem>
<App controller="MainController">
<Frame name="main_frame">
<Button name="ui_mybtn" label="按钮1" onclick="OnClickButton"></Button>
</Frame>
<Dialog title="my dialog" name="ui_mydlg"></Dialog>
</App>
class MainController(xmlui.Controller):
def OnClickButton(self, evt):
self.ui_mydlg.ShowModal()
支持两种菜单:
具体例子在wx_menu.py中。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。