Проблема с интерфейсом

Kim Jon

Новичок
Пользователь
Авг 1, 2021
16
0
1
1.Операционная система - Windows 10
2. PyCharm 2020.1 на компиляторе 3.8
3. Библиотеки Tkinter
Доброе времени суток Друзья!!!
Подскажите пожалуйста где моя ошибка. Суть проблемы вот в чем. Нашел офигенное видео по созданию базы данных под названием “Домашние финансы”. Решил я создать свою базу. И уже появилась проблема при создания интерфейса. А именно: В главном окне не появляется таблица
Код программы выкладываю ниже
Python:
import tkinter as tk
from tkinter import ttk
class Main(tk.Frame):
    def __init__(self, root):
        super(Main, self).__init__(root)
        self.init_main()
    def init_main(self):
        toolbar = tk.Frame(bg = '#d7d8e0', bd=2)
        toolbar.pack(side = tk.TOP, fill=tk.X)
        self.add_image = tk.PhotoImage(file='man.gif')
        button_record = tk.Button(toolbar, text='Добавить запись', command=self.open_dialog, bg='#d7d8e0', bd=0, compound=tk.TOP, image = self.add_image)
        button_record.pack(side=tk.LEFT)

        self.lattice = ttk.Treeview(self, columns=('ID', 'surname', 'name', 'middle_name', 'year_of_birth', 'age'), height=15, show = 'headings')
        self.lattice.column('ID', width=30, anchor=tk.CENTER)
        self.lattice.column('surname', width=365, anchor=tk.CENTER)
        self.lattice.column('name', width=365, anchor=tk.CENTER)
        self.lattice.column('middle_name', width=365, anchor=tk.CENTER)
        self.lattice.column('year_of_birth', width=40, anchor=tk.CENTER)
        self.lattice.column('age', width=40, anchor=tk.CENTER)

        self.lattice.heading('ID', text = 'Номер записи')
        self.lattice.heading('surname', text='Фамилия')
        self.lattice.heading('name', text='Имя')
        self.lattice.heading('middle_name', text='Отчество')
        self.lattice.heading('year_of_birth', text='Год рождения')
        self.lattice.heading('age', text='Возраст')

        self.lattice.pack
    def open_dialog(self):
        Child()
class Child(tk.Toplevel):
    def __init__(self):
        super().__init__(root)
        self.init_child()
    def init_child(self):
        self.title('Добавить запись')
        self.geometry('440x220+400+300')
        self.resizable(False, False)

        label_surname = tk.Label(self, text='Фамилия')
        label_surname.place(x=50, y=50)

        label_name = tk.Label(self, text='Имя')
        label_name.place(x=50, y=60)

        label_middle_name = tk.Label(self, text='Отчество')
        label_middle_name.place(x=50, y=70)

        label_year_of_birth = tk.Label(self, text='Дата рождения')
        label_year_of_birth.place(x=50, y=80)

        label_age = tk.Label(self, text='Возраст')
        label_age.place(x=50, y=90)

        self.surname=ttk.Entry(self)
        self.surname.place(x=200, y=50)

        self.name = ttk.Entry(self)
        self.name.place(x=200, y=110)

        self.middle_name = ttk.Entry(self)
        self.middle_name.place(x=200, y=170)

        self.year_of_birth = ttk.Entry(self)
        self.year_of_birth.place(x=200, y=250)

        self.age=ttk.Entry(self)
        self.age.place(x=200, y=310)

        button_ok = ttk.Button(self, text='Добавить запись')
        button_ok.place(x=220, y=170)
        button_ok.bind('<Button-1>')

        button_cancel= ttk.Button(self, text='Закрыть', command=self.destroy)
        button_cancel.place(x=300, y=170)

        self.grab_set()
        self.focus_set()
if __name__=='__main__':
    root = tk.Tk()
    app = Main(root)
    app.pack()
    root.title('Пациент')
    root.geometry('650x450+300+200')
    root.resizable(False, False)
    root.mainloop()
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 583
457
83
скобочки нужно добавить... pack - это функция, все функции вызываются через скобочки, без скобочек вы получаете объект функции...
нужно так
Python:
...

        self.lattice.heading('middle_name', text='Отчество')
        self.lattice.heading('year_of_birth', text='Год рождения')
        self.lattice.heading('age', text='Возраст')

        self.lattice.pack()
    def open_dialog(self):
        Child()
class Child(tk.Toplevel):

...
 
Последнее редактирование:

Форум IT Специалистов