python - 从 python wx.lib.calendar 获取选定的日期

标签 python python-3.x wxpython

如何制作打开日历然后选择日期并关闭它的按钮? 到目前为止,我只创建了日历(我不明白为什么它总是创建 2 个)。但我不知道如何获得选定的日期。我在 Python 3 上使用 pythonwx。

class MyCalendar(wx.Frame):

    def __init__(self, *args, **kargs):
        wx.Frame.__init__(self, *args, **kargs)
        self.cal = CalendarCtrl(self, 10, wx.DateTime.Now())
        self.timer = wx.Timer(self)



if __name__ == '__main__':  
    app = wx.App()
    frame = MyCalendar(None)
    frame.Show()
    app.MainLoop()

编辑

添加py3版本

from wx.adv import CalendarCtrl, GenericCalendarCtrl, CalendarDateAttr

class MyCalendar(wx.Frame):

    def __init__(self, *args, **kargs):
        wx.Frame.__init__(self, *args, **kargs)
        self.cal = CalendarCtrl(self, 10, wx.DateTime.Now())
        self.cal.Bind(wx.adv.EVT_CALENDAR, self.OnDate)



    def OnDate(self,event):
        print (self.cal.GetDate())      
        wx.Window.Close(self)

最佳答案

import wx
import wx.adv
class MyCalendar(wx.Frame):

    def __init__(self, *args, **kargs):
        wx.Frame.__init__(self, *args, **kargs)
        self.cal = wx.adv.CalendarCtrl(self, 10, wx.DateTime.Now())
        self.cal.Bind(wx.adv.EVT_CALENDAR, self.OnDate)

    def OnDate(self,event):
        print(self.cal.GetDate())


if __name__ == '__main__':
    app = wx.App()
    frame = MyCalendar(None)
    frame.Show()
    app.MainLoop()

现在双击一个日期。

我会让您研究创建一个框架/面板并在其上放置一个按钮,以激活日历。

关于python - 从 python wx.lib.calendar 获取选定的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46400863/

相关文章:

python 和甲骨文

python - 跟踪Python元组中值的增量和减量

linux - MenuItem 位图引发断言失败……

wxwidgets - 创建一个只有一个实例的 wxPython 应用程序

python - 使用 tox 创建的虚拟环境无法使用 pip install

python 3 : Does mysql db connection need to be explicitly closed in function?

用于处理时间相关数据的Python库?

python-3.x - 如何使用 python IMAP 下载邮件的所有附件

python-3.x - 如何使用 PyTest 使用 Locust 执行负载测试?

python - 使用 wxPython 显示进度