Tk - Kalender

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

Hallo !

Einige Änderungen: http://paste.pocoo.org/show/131766/

Gruß Frank
Benutzeravatar
krisi12345
User
Beiträge: 205
Registriert: Mittwoch 4. März 2009, 16:56
Wohnort: Das schöne München
Kontaktdaten:

passt! :D
[url=http://www.pc-tutos.de/Tutorials/Tutorials.htm]Wie verändert man Spiele oder Computer nach Wunsch? www.PC-Tutos.de[/url]
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

krisi12345 hat geschrieben:
krisi: Es existiert das babel-Modul (babel.edgewall.org), um Wochentagsnamen und Monatsnamen automatisch zu lokalisieren.
Also eigentlich wollte Ich nur die Farben und Schriftart/größe ändern.
Oh, tut mir leid. Da hab ich wohl zu schnell geguckt. Das ist aber trotzdem kein Grund, um von kaytac überhört zu werden ;)
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

Wenn habe ich überhört ?

Gruß Frank
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo kaytec!

Ein paar Vorschläge hätte ich da noch:
- Die __init__-Methode ist mittlerweile etwas lang und sehr unübersichtlich. Ich würde sie in mehrere Methoden unterteilen. Sollte auch nicht schwierig sein, die Blöcke bestehen im Prinzip ja schon.
- In "for column in xrange(1, 8):" sind mit 1 und 8 doch sicherlich die Tage der Wochen gemeint, das würde ich noch über ein "len" über "WEEK_DAYS" verweden.
- Sehe ich das richtig, dass Monate und Tage mit 1 beginnen? Das ist, zumindest aus Informatiker-Sicht, sehr ungewöhnlich. Das spart außerdem einige Sonderfälle, wie beispielsweise den in den Zeilen 199-201.
- "functools.partial" ist noch einen Blick wert, damit könnte man wohl die lambdas etwas loswerden.
- Ein "if state == True:" geht natürlich gar nicht ;-)
- Zeilen 153 bis 155 kann man sicher eleganter über den Vergleich von Tupeln lösen: (day, self.select_month, self.select_year) == time.localtime()[:3]

Sebastian
Das Leben ist wie ein Tennisball.
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

Hallo EyDu !

Wie immer bekommt man von dir eine gute Kritik !

- Die _init_-Methode aufteilen ? Das verstehe ich noch nicht so :oops: .
- Das mit den WEEK_DAYS stimmt natürlich - die kannst du irgendwie nicht leiden :wink:.
- Bei Informatikern zählt man die Null mit - da hast du natürlich recht und ich werde es noch ändern, doch die Übergabe in ein datetime - Objekt geschieht über Zahlen ab 1 ...bis... 12 und so habe ich halt mit 1 angefangen.
- Das mit den functools.partial hatte ich schon gesehen, nur mir es anzuschauen habe ich noch nicht "gebacken" bekommen - bin alt und träge :D.
- jaja if state: hätte gelangt. Kommt eigentlich von einem anderen Versuch, den Status über den event auszulesen. Würde evtl. auch gehen, den dieser ist ja unterschiedlich und
würde auch eine Verzweigung ermöglichen. (help(event) --> http://paste.pocoo.org/show/131787/ ). Dies hatte ich über den event.type gelöst, doch ob dies wiederum plattformunabhängig ist ?

Danke Dir !

Gruß Frank
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

kaytec hat geschrieben:Wenn habe ich überhört ?

Gruß Frank
Bei dem Hinweis, den ich ursprünglich an krisi12345 richtete, darfst du dich ruhig angesprochen fühlen (es geht darum, das babel-modul zu benutzen).
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

Hallo !

@ derdon: Das Modul babel ist doch zum Übersetzen - oder?

Soweit geändert, nur das mit den Blöcken und der __init__() - Methode habe ich noch nicht so verstanden.

http://paste.pocoo.org/show/132154/

Gruß Frank

EDIT:

Bei der Verwendung des Kalenders in anderen Anwendungen, ist es besser die Kommunikation so zu gestalten, denn es kann sonst zu Fehlermeldungen kommen, weil self.id nicht immer bekannt ist.

Code: Alles auswählen

def get_select_date (self, event, state):
        id = self.root.after(100, self.get_select_date, event, state)
        if state:
            self.date_label.config(text = self.calendar.select_date.strftime(
                "Date: %d.%m.%y"))
        else:
            self.root.after_cancel(id)
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

kaytec hat geschrieben:Hallo !
@ derdon: Das Modul babel ist doch zum Übersetzen - oder?
Ja, damit kannst du die Zeilen 16-24 sparen und dabei neben Englisch und Deutsch noch viele andere Sprachen übersetzen:

Code: Alles auswählen

>>> from babel import Locale, default_locale
>>> locale = Locale(default_locale())
>>> locale.days['format']['abbreviated']
{0: u'Mo.', 1: u'Di.', 2: u'Mi.', 3: u'Do.', 4: u'Fr.', 5: u'Sa.', 6: u'So.'}
>>> locale.months['format']['wide']
{1: u'Januar', 2: u'Februar', 3: u'M\xe4rz', 4: u'April', 5: u'Mai', 6: u'Juni', 7: u'Juli', 8: u'August',
9: u'September', 10: u'Oktober', 11: u'November', 12: u'Dezember'}
>>> locale = Locale('en', 'US')
>>> locale.days['format']['abbreviated']
{0: u'Mon', 1: u'Tue', 2: u'Wed', 3: u'Thu', 4: u'Fri', 5: u'Sat', 6: u'Sun'}
>>> locale.months['format']['wide']
{1: u'January', 2: u'February', 3: u'March', 4: u'April', 5: u'May', 6: u'June', 7: u'July', 8: u'August',
9: u'September', 10: u'October', 11: u'November', 12: u'December'}
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

@derdon: Danke !

http://paste.pocoo.org/show/132607/

Gruß Frank
Antworten