ich habe ein Problem mit dem Layout.
Es geht um eine Kalenderprogramm. Ich dachte mir, im Programmfenster Frames anzulegen (ein Frame pro Tag), in die dann Datum etc. per label und listbox eintragen werden, wäre eine gute Idee. Zwar werden die widgets per grip() angeordnet, aber leider nicht am Programmfenster.
Eventuell kann sich mal einer den Code ansehen und mir klar machen, wo der Fehler liegt?
Datei: termine.py
Code: Alles auswählen
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import views
import tkinter
__version__ = 'version 0.0.1'
# Global shortcuts
def key(event):
# print(event.keysym)
if event.keysym == 'q' or event.keysym == 'Q': # Quit application
app.quit()
def main():
'''Program execution'''
global app
app = tkinter.Tk()
app.title('termine')
#app.geometry('800x600')
app.bind('<Key>', key)
view = views.ViewWeekFilo(app)
app.mainloop()
if __name__ == '__main__':
main()
Code: Alles auswählen
import tkinter
class ViewWeekFilo():
'''
This is a "Filofax like" view with two columns and four rows.
'''
def frameDay(self, master, dateLine, appointments, gRow, gCol):
'''Frame to show the Day'''
frame = tkinter.Frame(master)
frame.grid(row=gRow, column=gCol)
lblMonDate = tkinter.Label(frame, text=dateLine, anchor='w')
lblMonDate.grid(row='0')
apts = tkinter.Listbox(frame)
apts.grid(row='1')
for a in appointments:
apts.insert('end', a)
return frame
def __init__(self, master):
day1 = ('- Geburtstag Kontakt', '- Feiertag', '07:00-18:00 Termin 1')
day2 = ('18:00- ... Termin 2',)
day3 = (' ... -07:00 Termin 3',)
day4 = ('',)
day5 = ('',)
day6 = ('',)
day7 = ('',)
frmMon = self.frameDay(master, '24.12. Montag', day1, 0, 0)
frmTue = self.frameDay(master, '25.12. Dienstag', day2, 1, 0)
frmWed = self.frameDay(master, '26.12. Mittwoch', day3, 2, 0)
frmThu = self.frameDay(master, '27.12. Donnerstag', day4, 3, 0)
frmFri = self.frameDay(master, '28.12. Freitag', day5, 0, 1)
frmSat = self.frameDay(master, '29.12. Samstag', day6, 1, 1)
frmSun = self.frameDay(master, '30.12. Sonntag', day7, 2, 1)
frmTool = tkinter.Frame(master)
frmTool.grid(row='3', column='1')
self.lblToolDate = tkinter.Label(frmTool, text='KW: 51 / 2012', anchor='n')
self.lblToolDate.grid(row='0')
Gruß
Maschinenhans