Salut à tous :) !
Je suis en train de coder un petit chrono pour faire cuire mes pattes :mrgreen: !
Rien de compliquer, quand on le lance, ça démarre, quand on le quitte, ça s'arrête.
Mon problème est pour adapter les dimensions de la fenêtre à celle du wx.StaticText qui peut devenir de plus en plus large au fil du temps (plusieurs centaines d'heures, mais je voudrais faire ça propre).
Voici le code :
Dans cet exemple j'ai remplacé à la ligne 54 :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 #!/usr/bin/env python # -*- coding: utf-8 -*- import wx import os, sys class Gui (wx.Frame): def __init__ (self, titre): wx.Frame.__init__(self, None, wx.ID_ANY, title=titre) self.panel = wx.Panel(self, wx.ID_ANY) sizer = wx.BoxSizer(wx.VERTICAL) # ----------------------------------------------------------------------------------------------------------- Widgets self.text = wx.StaticText(self.panel, wx.ID_ANY, u'00:00:00') font = wx.Font(40, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD) self.text.SetFont(font) sizer.Add(self.text, flag=wx.ALIGN_CENTER|wx.ALL, border=20) # ----------------------------------------------------------------------------------------------------------- Divers # Sizer + Fit self.panel.SetSizerAndFit(sizer) self.Fit() # Redimentionnable self.SetMinSize(self.GetSize()) self.SetMaxSize(self.GetSize()) # Events self.Bind(wx.EVT_TIMER, self.label) # Lancement du chrono... self.spend_time = 0 self.timer = wx.Timer(self) self.timer.Start(1000) def label (self, time): self.spend_time += 1 temps = self.spend_time heure = temps / 3600 temps = temps - (heure * 3600) minute = temps / 60 temps = temps - (minute * 60) seconde = temps self.text.SetLabel(str(heure).zfill(2) + ':' + str(minute).zfill(2) + ':' + str(seconde).zfill(3)) class Ihm (wx.App): def OnInit (self): root = Gui(u'PyChronos') root.Show(True) self.SetTopWindow(root) return True if __name__ == '__main__': app = Ihm() app.MainLoop()
Par:Code:self.text.SetLabel(str(heure).zfill(2) + ':' + str(minute).zfill(2) + ':' + str(seconde).zfill(2))
Afin que ce soit bien visible.Code:self.text.SetLabel(str(heure).zfill(2) + ':' + str(minute).zfill(2) + ':' + str(seconde).zfill(3))
J'ai essayé des self.Layout(), self.Fit()...
Mais rien à faire, je n'arrive pas à redimentionner simplement la fenêtre à la dimension du texte :cry: !
Voilà, si quelqu'un a une idée... (je suis sûr que c'est tout bête en plus :oops: )
Merci d'avance :ccool: !
