Ein kleiner Organizer

Code-Stücke können hier veröffentlicht werden.
Antworten
JC
User
Beiträge: 5
Registriert: Montag 4. April 2005, 20:32

So, das ist mein erstes kleines Project, dass funktioniert...ein kleiner Organizer. Naja, eigentlich ist es eher eine Todo-Liste, in der man Aufgaben auflisten kann...ich hab früher immer notepad genutzt, mit dem Resultat, dass ich X verschiedene kleine txt-Schnipsel rumfliegen hatte.

Mir ist schon klar, dass da schon besseres auf dem Markt zu finden ist, aber es bot sich als erstes Project zum "selbermachen" an. :D

Was im Lauf der Zeit noch eingefügt werden soll:
  • Einteilung der Tasks in unterschiedliche Prioritäten + Farbcodierung
  • Angabe der Dauer der Tasks + Startzeitpunkt
  • Später: Integration in einen Kalender
Aber erstmal will ich das Vorhandene verbessern, weil ich noch nicht ganz zufrieden damit bin. Und dazu brauche ich eure Hilfe!

Ich wäre sehr dankbar für Kritik im Bezug auf Realisierung/Codingstil etc. Ich programmiere noch nicht sooo lang in Python und bin sicher, dass es 100 Möglichkeiten gibt, das Programm besser zu machen.

mfg Jan

Vorsicht! Sind 300+ Zeilen...
[und daher ausgelagert]

Edit (Leonidas): Code ausgelagert.
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi!

Gefällt mir schon recht gut :)

Ein paar Sache sind mir beim kurzen Überfliegen aufgefallen:
- Für die Dialoge zum Speichern und Laden bieten sich meiner Meinung nach tkFileDialog.askopenfilename() und tkFileDialog.asksavefilename() an.
- Beim Dialog für die Taskeingabe wäre es schön, wenn das Entry gleich den Fokus hat, dann muss man nicht erst reinklicken (ich bin dafür viel zu faul :wink:)
- Viele Deiner Widgets werden nie angesprochen, Du speicherst Sie trotzdem als Klassenvariablen. Das ist nicht wirklich nötig. z.B. die Buttons im Top-menue-frame in der Klasse Organizer. Ich würd das ganze so schreiben (ist aber Geschmackssache):

Code: Alles auswählen

#Top menue frame
mainmenue = Frame(self.mainFrame)
mainmenue.pack(fill = "both",side = "top")

options = {'width':10,'relief':'flat','bd':1}
Button(mainmenue,options,text="New Task",command=self.nDialog
        ).pack(side="left")
Button(mainmenue,options,text="Edit Task",command=self.eDialog
        ).pack(side="left")
Button(mainmenue,options,text="Delete Task",command=self.dDialog
        ).pack(side="left")
Button(mainmenue,options,text="Load",command=self.lDialog
        ).pack(side="left")
Button(mainmenue,options,text="Save",command=self.sDialog
        ).pack(side="left")
Button(mainmenue,options,text="Quit",command=self.qDialog
        ).pack(side="left")
Gut, mehr fällt mir jetzt nicht ein. Weiter so :)

Gruß, mawe
JC
User
Beiträge: 5
Registriert: Montag 4. April 2005, 20:32

Hi,

erstmal danke fürs feedback. Klang alles wirklich plausibel, deswegen hab ich meinen Code dementsprechend geändert....ca 2 dutzend zeilen code weniger, und er is lesbarer. *freu*

Nur eine Sache kriege ich nicht hin: Meinen Dialogfenstern den Focus zu geben. Ich hab das Forum durchsucht, gegooglet, meine Python Links abgeklappert, aber nix. Hast du nen Tipp für mich? :)

mfg
Jan
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi!

Ganz einfach. Um z.B. dem self.eName Entry im nDialog den Fokus zu geben, schreibst Du

Code: Alles auswählen

self.eName.focus()
(Am besten noch ohne self, das braucht man da auch nicht :wink:)

Gruß, mawe
an_name
User
Beiträge: 1
Registriert: Sonntag 6. August 2006, 14:47

JC hat geschrieben:Hi,

erstmal danke fürs feedback. Klang alles wirklich plausibel, deswegen hab ich meinen Code dementsprechend geändert....ca 2 dutzend zeilen code weniger, und er is lesbarer. *freu*

Nur eine Sache kriege ich nicht hin: Meinen Dialogfenstern den Focus zu geben. Ich hab das Forum durchsucht, gegooglet, meine Python Links abgeklappert, aber nix. Hast du nen Tipp für mich? :)

mfg
Jan
Antworten