Форум сайта python.su
Есть мысль сделать класс окна, и на основе его создавать объекты по мере необходимости.
Окно должно иметь панель инструментов, панель статистики и между ними табличка.
Панели инструментов должны иметь постоянную высоту, а табличка должна меняться по высоте , если мы начинаем увеличивать окно.
Вот я сварганил, такой класс, но что-то не того … не получается.
Помогите пока, что начинающему питонному программеру )))
Вот сам текст проги:
# -*- coding: cp1251 -*-
from Tkinter import *
import sys
import time
from TableList import *
class Aplication(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
# Пакуем окошко
self.pack()
#Создаем виджеты
self.createWidgets()
def createWidgets(self):
#Узнаем размеры экрана и задаем минимальные и максимальные размеры окна, тут у нас всё максимально
self.master.maxsize(self.winfo_screenwidth(),self.winfo_screenheight())
self.master.minsize(self.winfo_screenwidth(),self.winfo_screenheight())
self.master.title = "Справочник"
#Создаем рамку не всё окно, чтобы можно было применять различные менеджеры
self.mframe = Frame(self)
self.mframe.width = self.winfo_screenwidth()
self.mframe.height = self.winfo_screenheight()
#Растягиваем рамку на все окно
self.mframe.pack(expand = YES)
#Создаем панель инструментов
self.toolbar = Frame(self.mframe)
self.toolbar["borderwidth"]=2
self.toolbar["relief"]=RAISED
# self.toolbar.pack(fill=X)
#Нихай занимает 10% по высоте
self.toolbar.place(relx= 0.1, rely=1)
#Место для таблички
self.work = Frame(self.mframe)
self.work["borderwidth"]=2
self.work["relief"]=RAISED
# self.work.pack(fill = BOTH)
#нихай занимает 80% окна
self.work.place(relx=0.8, rely=1)
# панель статуса
self.statusbar = Frame(self.mframe)
self.statusbar["borderwidth"]=2
self.statusbar["relief"]=RAISED
# self.statusbar.pack(fill = X)
#Нихай занимает 10%
self.statusbar.place(relx=0.1,rely=1)
#Ну тут в панель инструментов кидаем всякие кнопки
self.butAdd = Button(self.toolbar,text = "Добавить")
self.butAddPap = Button(self.toolbar,text = "Группа")
self.butDel = Button(self.toolbar,text = "Удалить")
self.butSelFiltr = Button(self.toolbar,text = "Фильтр")
self.butDelFiltr = Button(self.toolbar,text = "Удалить фильтр")
self.butAdd.pack(side=LEFT)
self.butAddPap.pack(side=LEFT)
self.butDel.pack(side=LEFT)
self.butSelFiltr.pack(side=LEFT)
self.butDelFiltr.pack(side=LEFT)
# +++++++++++++++++++++++++++Таблица+++++++++++++++++++++++++++++++++++++++++
tl = TableList(self.work, stretch='all', showarrow=True, columns = (5, 'Код', 0, "Название", "left", 0,"Примечание", 'right'),
)
tl.pack(fill="both")
tl.columnconfigure(0, showlinenumbers=True,)
tl.columnconfigure(1, sortmode='ascii', sortcommand='sortbycolumn')
tl.columnconfigure(2, sortmode='ascii', sortcommand='sortbycolumn')
tl.curselection()
#Ну и статус чтоб не был пустым
self.message = Label(self.statusbar, text='Привет, библиотека Tk!')
self.fortime = Label(self.statusbar, text= time.time() )
self.message.pack(side =LEFT)
self.fortime.pack(side = RIGHT )
#Усё пр херим
def die(self):
sys.exit(0)
#Ну тут шоб можно было опробывать
if __name__ == "__main__" :
app = Aplication()
app.mainloop()
Отредактировано (Ноя. 12, 2009 00:18:38)
Офлайн