Найти - Пользователи
Полная версия: Скажите, я на правильном пути? (клепаю форму для вывода данных)
Начало » GUI » Скажите, я на правильном пути? (клепаю форму для вывода данных)
1
WissenWolf
Клепаю форму для вывода данных.
Идея: этакая табличка, в которой выводятся некоторым образом размеченные данные по соответствующим полям.
По нажатию кнопки (которая с цифрой) соответствующее поле повторяется (не реализовано), по нажатию кнопки “…” - открывается для редактирования данных (не реализовано).

В правильном ли направлении я двигаюсь?

 import tkinter
if __name__ == '__main__':
    root = tkinter.Tk()
    root.geometry("800x600+50+50")
    framelist = {}
    for i in range(0, 10):
        currentframe = framelist['frame' + str(i)] = tkinter.Frame(root, bg='grey', bd=1, height=12)
        ch = framelist['ch' + str(i)] = tkinter.Checkbutton(currentframe, variable='ch' + str(i), relief='flat')
        lbl = framelist['lbl' + str(i)] = tkinter.Label(currentframe, text="Поле " + str(i), width=30)
        b = framelist['b' + str(i)] = tkinter.Button(currentframe, text=str(i))
        tv = framelist['tv' + str(i)] = tkinter.StringVar()
        tv.set("Текст " + str(i))
        t = framelist['t' + str(i)] = tkinter.Entry(currentframe, textvariable=tv, width=60)
        b2 = framelist['b2' + str(i)] = tkinter.Button(currentframe, text="...")
        ch.pack(side='left')
        lbl.pack(side='left')
        b.pack(side='left')
        t.pack(side='left')
        b2.pack(side="left")
        currentframe.pack(side='top')
    root.mainloop()
PEHDOM
WissenWolf
В правильном ли направлении я двигаюсь?
Это код ни о чем, вы просто нарисовали картинку, абсолютно не представляя себе как будете вводить тот или иной функционал. Вы создали словарь с туевой хучей элементов вперемешку. Как вы собираетесь вешать бинды на каждую кнопку, как будете заполнять данные, как считывать? как будет повторяться “соответствующее поле”, как вы вообще будете с формой взаимодействовать, как заполнять ее, как считывать данные?

ИМХО я бы вынес то что у вас в цикле в отдельный класс, тогда бы вы получили общий интерфейс для взаимодействия со всем этим зоопарком и клавиши биндить , и данные изменять и прочее. И не нужно будет суп-словарь, достаточно будет списка в котором будут ваши виджеты.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB