#! /usr/bin/python3 # todo adjust font with panel size import wx import time roman={0: '0', 1: 'i', 2: 'ii', 3: 'iii', 4: 'iv', 5: 'v', 6: 'vi', 7: 'vii', 8: 'viii', 9: 'ix', 10: 'x', 11: 'xi', 12: 'xii', 13: 'xiii', 14: 'xiv', 15: 'xv', 16: 'xvi', 17: 'xvii', 18: 'xviii', 19: 'xix', 20: 'xx', 21: 'xxi', 22: 'xxii', 23: 'xxiii', 24: 'xxiv', 25: 'xxv', 26: 'xxvi', 27: 'xxvii', 28: 'xxviii', 29: 'xxix', 30: 'xxx', 31: 'xxxi', 32: 'xxxii', 33: 'xxxiii', 34: 'xxxiv', 35: 'xxxv', 36: 'xxxvi', 37: 'xxxvii', 38: 'xxxviii', 39: 'xxxix', 40: 'xl', 41: 'xli', 42: 'xlii', 43: 'xliii', 44: 'xliv', 45: 'xlv', 46: 'xlvi', 47: 'xlvii', 48: 'xlviii', 49: 'xlix', 50: 'l', 51: 'li', 52: 'lii', 53: 'liii', 54: 'liv', 55: 'lv', 56: 'lvi', 57: 'lvii', 58: 'lviii', 59: 'lix'} class RNClock(wx.Panel): def __init__(self,P): super().__init__(P) z=wx.BoxSizer() self.face=wx.StaticText(self,-1,"XII:") z.Add(self.face,1,wx.EXPAND) self.SetSizer(z) self.Bind(wx.EVT_SIZE, self.resize) self.Bind(wx.EVT_TIMER, self.tick) self.timer=wx.Timer(self,-1) self.SetSize(50, 300) self.timer.Start(1000) def resize(self,e): W,H=self.Size f=self.face.GetFont() f.SetPixelSize((0,.9*H)) self.face.SetFont(f) def tick(self,e): h,m,s=time.localtime()[3:6] rt=f"{roman[h]} : {roman[m]} : {roman[s]}" self.face.SetLabel(rt.upper()) class App(wx.App): def __init__(self): super(App, self).__init__() frame = wx.Frame(None) pane=RNClock(frame) z = wx.BoxSizer() z.Add(pane,1, wx.EXPAND|wx.ALL, 1) frame.SetSizer(z) frame.Show(True) if __name__ == '__main__': app = App() app.MainLoop() # rxx="0,i,ii,iii,iv,v,vi,vii,viii,ix" # xx=rxx.split(',') # teen=["x"+x for x in xx] # x20=['x'+x for x in teen] # x30=['x'+x for x in x20] # x50=['l'+x for x in xx] # x40=['x'+x for x in x50] # # rr=[*xx, *teen, *x20, *x30, *x40, *x50] # RN=dict(zip(range(0,60),rr)) # print (RN)