将onClick事件链接到框架上的其他控件

你好, 我创建了一个简单的表单,上面有2个广播框,2个文本框和一个 按钮. 当我单击按钮时,我想将每个"选择"写成文本 文件. 我不知道如何将OnClick事件链接到其他4个 控件. 任何帮助将非常感激! R.D. Harles 导入WX,系统 class form1(wx.panel): def __init __(self,parent,id): wx.panel .__ init __(self,parent,id) #创建按钮 self.button = wx.button(self,50," go!",wx.point(20,200)) wx.evt_button(self,50,self.onplick) ## 名 #编辑控制 self.lblname = wx.statictext(self,-1,"名字" :",wx.point(20,50)) self.editname = wx.textctrl(self,10,"",wx.point(90,50), wx.size(100,-1)) wx.evt_text(self,10,self.evttext) ## 姓 #编辑控制 self.lblname = wx.statictext(self,-1,"姓氏" :",wx.point(20,75)) self.editname = wx.textctrl(self,20,"",wx.point(90,75), wx.size(100,-1)) wx.evt_text(self,20,self.evttext) #广播框 self.radiolist = ['雇用','失业'] rb = wx.radiobox(self,30,"状态:",wx.point(20,100), wx.defaultsize, self.radiolist,2,wx.ra_specify_cols) wx.evt_radiobox(self,30,self.evtradiobox) #广播框 self.radiolist = ['已婚','single'] rb = wx.radiobox(self,40,"状态:",wx.point(20,150), wx.defaultsize, self.radiolist,2,wx.ra_specify_cols) wx.evt_radiobox(self,40,self.evtradiobox) #文本事件 def evttext(self,event): 打印event.getString() #RadioBox事件 Def evtradiobox(自我,事件): 打印event.getID() #按钮事件 Def OnClick(自我,事件): 打印"写作作业.cfg ..." file = open(" job.cfg"," w") file.write("") app = wx.pysimpleapp() 帧= wx.frame(无,-1,"问题") form1(帧,-1) 帧.展示(1) app.mainloop()

# 回答1

你好哈尔斯, 请定义"链接" - 它是绑定事件,从控制中获取信息吗, ....? 如果我猜想您想要每个控件的值,那么您 需要存储对此控件的引用并调用获取的方法 每个控件的值. (对于大多数,getValue(),getStringselection()对于其他人...) 我建议您使用Sizer而不是硬编码小部件 地点. 但是,我最好的建议是您下载WXPYTHON演示和 查看那里的示例. 请参阅下面的修订代码: 导入WX class form1(wx.panel): def __init __(self,parent,id): wx.panel .__ init __(self,parent,id) sizer = wx.gridsizer(wx.vertical) gsizer = wx.flexgridsizer(2,2) # 名: _______ gsizer.Add(wx.statictext(self,-1,"名字:")) self._first_name = wx.textctrl(self,-1,size =(100,-1)) gsizer.Add(self._first_name,0,wx.expand) # 姓: _______ gsizer.Add(wx.statictext(self,-1,"姓氏:")) self._last_name = wx.textctrl(self,-1,size =(100,-1)) gsizer.Add(self._last_name,0,wx.expand) gsizer.addgrowablecol(1) sizer.Add(Gsizer,1,wx.expand) self._work_status = wx.radiobox(self,-1,"工作状态", 选择= ["就业","失业"]) sizer.Add(self._work_status,0,wx.expand) self._martial_status = wx.radi obox(self,-1,"武术状况", 选择= ["已婚","单身"]) sizer.Add(self._martial_status,0,wx.expand) b = wx.button(self,-1," go!") self.bind(wx.evt_button,self.onclick,b) sizer.Add(b) self.Seterizer(sizer) self.setautolayout(1) sizer.fit(self) #按钮事件 Def OnClick(自我,事件): fo = open(" job.cfg"," w") 打印>> fo,"名字:",self._first_name.getValue() 打印>> fo,"姓氏:",self._last_name.getValue() 打印>> fo,"工作状态:", self._work_status.getStringsElection() 打印>> fo,"武术状况:", self._martial_status.getStringsElection() fo.close() hth, miki http://pythonwise.blogspot.com/
# 回答2

嗨,米基, 感谢您抽出宝贵的时间来弄清楚我要做什么. 这正是我想要的. 我打算在此代码学习并查看WXPYTHON演示 提及. 再次感谢! R.D. Harles

标签: python

添加新评论