如何在wx python中制作一个简单的手表

时间:2012-12-04 08:08:10

标签: python wxpython wxwidgets

请有人告诉我,如何制作一个简单的wxpython

  import wx
    import time

    class MyFrame(wx.Frame):
        """ We simply derive a new class of Frame. """
        def __init__(self, parent, title):
            wx.Frame.__init__(self, parent, title=title, size=(200,100))
            self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE)
            self.Show(True)

    app = wx.App(False)
    frame = MyFrame(None, 'Small editor')

app.MainLoop()

我想知道如何在此刻拍摄日期并将其显示在一个框架中

3 个答案:

答案 0 :(得分:3)

如果您希望在GUI内/内显示日期时间(作为数字,而不是时钟格式),您可以使用wx.DateTime.Now()函数。阅读wxPython doc here中的更多详细信息。您可以输入以下内容:

now = wx.DateTime.Now()
timecheckText = wx.StaticText(panel, -1, "Sample sentence here:\t%s\n"%(now.Format("%c", wx.DateTime.PST)), (3,30))


这样做是在wx.StaticText函数中输入日期时间,并在启动时打印当前日,月,年,时间和时区。此外,无需'导入日期时间',只需'导入wx'。

答案 1 :(得分:2)

  

“我想知道我现在怎样才能把日期时间显示在一个框架中”

使用time模块获取系统时间:

import time
time.strftime('%d %m %Y')

作为示例如何访问此模块。现在在Python解释器中,尝试help(time)并阅读不同的时区命令和格式化命令,以获得所需的值。

答案 2 :(得分:1)

你看过wxPython演示吗?您应该查看几个小部件。一个是AnalogClock。它真的很整洁。那就是LEDNumberCtrl。有一个演示,它显示当前时间实时更新。

如果您需要显示日期,请尝试使用DatePickerCtrl

更新:这是一个代码示例:

import wx

########################################################################
class MyPanel(wx.Panel):
    """"""

    #----------------------------------------------------------------------
    def __init__(self, parent):
        """Constructor"""
        wx.Panel.__init__(self, parent)

        sizer = wx.BoxSizer(wx.VERTICAL)
        self.SetSizer(sizer)

        dpc = wx.DatePickerCtrl(self, size=(120,-1),
                                style = wx.DP_DROPDOWN
                                      | wx.DP_SHOWCENTURY
                                      | wx.DP_ALLOWNONE )
        self.Bind(wx.EVT_DATE_CHANGED, self.OnDateChanged, dpc)
        sizer.Add(dpc, 0, wx.ALL, 50)

        # In some cases the widget used above will be a native date
        # picker, so show the generic one too.            
        dpc = wx.GenericDatePickerCtrl(self, size=(120,-1),
                                       style = wx.TAB_TRAVERSAL
                                       | wx.DP_DROPDOWN
                                       | wx.DP_SHOWCENTURY
                                       | wx.DP_ALLOWNONE )
        self.Bind(wx.EVT_DATE_CHANGED, self.OnDateChanged, dpc)
        sizer.Add(dpc, 0, wx.LEFT, 50)


    def OnDateChanged(self, evt):
        print "OnDateChanged: %s\n" % evt.GetDate()

########################################################################
class MyFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, parent=None, title="DatePickers")
        panel = MyPanel(self)
        self.Show()

#----------------------------------------------------------------------
if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame()
    app.MainLoop()