Форум сайта python.su
from tkinter import * import tkinter as tk from tkinter import ttk import sqlite3 class Main(tk.Frame): def __init__(self, root): super().__init__(root) self.init_main() self.db = db self.view_records() def init_main(self): toolbar = tk.Frame(bg='#d7d8e0', bd=2) toolbar.pack(side=tk.TOP, fill=tk.X) btn_open_dialog = tk.Button(toolbar, text='lÄGG TILL KUND', command=self.open_dialog, bg='#d7d8e0', bd=2, compound=tk.TOP, ) btn_open_dialog.pack(side=tk.LEFT) self.tree = ttk.Treeview(self, columns=('ID', 'Kundens namn', 'Kundens adress', 'Djur', 'Djurens namn', 'Datum', 'Behandling', 'Kostnad'), height=15, show='headings') self.tree.column('ID', width=30, anchor=tk.CENTER) self.tree.column('Kundens namn', width=100, anchor=tk.CENTER) self.tree.column('Kundens adress', width=100, anchor=tk.CENTER) self.tree.column('Djur', width=50, anchor=tk.CENTER) self.tree.column('Djurens namn', width=100, anchor=tk.CENTER) self.tree.column('Datum', width=50, anchor=tk.CENTER) self.tree.column('Behandling', width=90, anchor=tk.CENTER) self.tree.column('Kostnad', width=80, anchor=tk.CENTER) self.tree.heading('ID', text='ID') self.tree.heading('Kundens namn', text='Kundens namn') self.tree.heading('Kundens adress', text='Kundens adress') self.tree.heading('Djur', text='Djur') self.tree.heading('Djurens namn', text='Djurens namn') self.tree.heading('Datum', text='Datum') self.tree.heading('Behandling', text='Behandling') self.tree.heading('Kostnad', text='Kostnad') self.tree.pack() def records(self, Kundensnamn, Kundensadress, Djur, Djurensnamn, Datum, Behandling, Kostnad): self.db.insert_data(Kundensnamn, Kundensadress, Djur, Djurensnamn, Datum, Behandling, Kostnad ) self.view_records() def view_records(self): self.db.c.execute('''SELECT * FROM finance''') [self.tree.delete(i) for i in self.tree.get_children()] [self.tree.insert('', 'end', values=row) for row in self.db.c.fetchall()] def open_dialog(self): Child() class Child(tk.Toplevel): def __init__(self): super().__init__(root) self.init_child() self.view = app def init_child(self): self.title('lÄGG TILL KUND') self.geometry('400x220+400+300') self.resizable(False, False) label_Kundensnamn = tk.Label(self, text='Kundens namn:').grid(row=1,column=1) self.entry_Kundensnamn = ttk.Entry(self) self.entry_Kundensnamn.grid(row=2,column=1,padx=(10.0)) label_adress = tk.Label(self, text='Kundens adress:').grid(row=3,column=1) self.entry_Kundensadress = ttk.Entry(self) self.entry_Kundensadress.grid(row=4,column=1,padx=(10.0)) label_animal = tk.Label(self, text='Djur:').grid(row=5,column=1) self.entry_Djur = ttk.Entry(self) self.entry_Djur.grid(row=6,column=1,padx=(10.0)) label_Djurensnamn = tk.Label(self, text='Djurens namn:').grid(row=7,column=1) self.entry_Djurensnamn = ttk.Entry(self) self.entry_Djurensnamn.grid(row=8,column=1,padx=(10.0)) label_Datum = tk.Label(self, text='Datum:').grid(row=1,column=2) self.entry_Datum = ttk.Entry(self) self.entry_Datum.grid(row=2,column=2,padx=(10.0)) label_Behandling = tk.Label(self, text='Behandling:').grid(row=3,column=2) self.entry_Behandling = ttk.Entry(self) self.entry_Behandling.grid(row=4,column=2,padx=(10.0)) label_Kostnad = tk.Label(self, text='Kostnad:').grid(row=5,column=2) self.entry_Kostnad = ttk.Entry(self) self.entry_Kostnad.grid(row=6,column=2,padx=(10.0)) btn_cancel = ttk.Button(self, text='STÄNG', command=self.destroy) btn_cancel.grid(row=8, column=2, padx=(10,0)) btn_ok = ttk.Button(self, text='ANGE') btn_ok.grid(row=9, column=2, padx=(10,0)) btn_ok.bind('<Button-1>', lambda event: self.view.records(self.entry_Kundensnamn.get(), self.entry_Kundensadress.get(), self.entry_Djur.get(), self.entry_Djurensnamn.get(), self.entry_Datum.get(), self.entry_Behandling.get(), self.entry_Kostnad.get())) self.grab_set() self.focus_set() class DB: def __init__(self): self.conn = sqlite3.connect('finance.db') self.c = self.conn.cursor() self.c.execute( '''CREATE TABLE IF NOT EXISTS finance (id integer primary key, Kundens namn text, Kundens adress text, Djur text, Djurens namn text, Datum real, Behandling text, Kostnad real)''') self.conn.commit() def insert_data(self, Kundensnamn, Kundensadress, Djur, Djurensnamn, Datum, Behandling, Kostnad ): self.c.execute('''INSERT INTO finance(Kundens namn, Kundens adress, Djur, Djurens namn, Datum, Behandling, Kostnad) VALUES (?, ?, ?, ?, ?, ?, ?)''', ( Kundensnamn, Kundensadress, Djur, Djurensnamn, Datum, Behandling, Kostnad)) self.conn.commit() if __name__ == "__main__": root = tk.Tk() db = DB() app = Main(root) app.pack() root.title("Klinik finance") root.geometry("650x450+300+200") root.resizable(False, False) root.mainloop()
Отредактировано FishHook (Март 13, 2019 04:47:38)
Офлайн
dimas__77
А разве названия столбцов БД могут содержать пробелы?
Офлайн
FishHookМогут, если в кавычках:
А разве названия столбцов БД могут содержать пробелы?
'''CREATE TABLE IF NOT EXISTS finance (id integer primary key, "Kundens namn" text, "Kundens adress" text, "Djur" text, "Djurens namn" text, "Datum" real, "Behandling" text, "Kostnad" real)'''
Офлайн
ramiОтлично!
Могут, если в кавычках
Офлайн
Не помогло
Офлайн
Старую не правильно созданную базу удалили? Иначе, новая с правильными полями не создастся.
Офлайн