我在wxpython有两个班wx.框架班级和awx.对话框(日历对话框)类
我的日历对话框如下所示:
class Calendar(wx.Dialog):
def __init__(self, parent, id, title):
wx.Dialog.__init__(self, parent, id, title)
vbox = wx.BoxSizer(wx.VERTICAL)
self.calend = cal.CalendarCtrl(self, -1, wx.DateTime_Now(),
style = cal.CAL_SHOW_HOLIDAYS|cal.CAL_SEQUENTIAL_MONTH_SELECTION)
vbox.Add(self.calend, 0, wx.EXPAND | wx.ALL, 20)
vbox.Add((-1, 20))
hbox2 = wx.BoxSizer(wx.HORIZONTAL)
btn = wx.Button(self, -1, 'Ok')
cancelBtn = wx.Button(self, -1, 'Cancel')
hbox2.Add(btn, 1)
hbox2.Add(cancelBtn, 1)
vbox.Add(hbox2, 0, wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, 20)
btn.Bind(wx.EVT_BUTTON, self.okClicked)
cancelBtn.Bind(wx.EVT_BUTTON, self.OnQuit)
self.SetSizerAndFit(vbox)
self.Show(True)
self.Centre()
def okClicked(self, event):
date = self.calend.GetDate()
print date
return date
我从frame类调用日历对话框,如下所示
^{pr2}$如何在我的wx.框架类返回到日历对话框类中的返回日期?在
在calClick1中,创建以self为父级的日历实例:
在Calendar类中添加以下内容:
self.parent = parent
在wx.Dialog.__init__(...)
之后。 现在您可以访问日历中框架的属性。示例:如果你有帧内类,比如:
^{pr2}$您可以在类日历的okClicked方法中更改它:
如wxPython演示所示,当您调用showmodel()时,它应该在if语句中使用:
如果你要改变:
^{pr2}$收件人:
你的日期变量对类是全局的,你可以通过calObj在框架内访问它,比如:计算日期
你可以这样做,这样你就可以在对话框关闭后对框架的TextCtrl进行更改,而不是回调用父对象:(当然,这并不是说有什么问题!;)
未经测试,但下面的方法应该能帮你解决问题:
相关问题 更多 >
编程相关推荐