· 4 years ago · Mar 12, 2021, 11:36 AM
1# Erstellen Sie ein Logbuch mit TKinter, über das bestehende Log-Einträge gelesen und neue Log-Einträge geschrieben
2# werden können. Die Daten sind persistent in einer relationalen Datenbank (sqlite) zu speichern.
3
4import sqlite3
5from datetime import date
6from tkinter import *
7from tkinter import ttk
8import tkinter as tk
9from tkinter import messagebox
10
11con = sqlite3.connect('t.db')
12cur = con.cursor()
13cur.execute(
14 "CREATE TABLE IF NOT EXISTS logbuch(ID INTEGER PRIMARY KEY AUTOINCREMENT, logMessage varchar(1000), datum date not null);")
15con.commit()
16
17
18def insertTo(log):
19 cur.execute("INSERT INTO logbuch(logMessage, datum) VALUES('" + log + "','" + str(date.today()) + "')")
20 con.commit()
21
22
23def deleteRow(cur, id):
24 cur.execute("DELETE FROM logbuch WHERE ID = ?", id)
25 con.commit()
26
27
28def selectAll(cur):
29 cur.execute("SELECT * FROM logbuch")
30 return cur.fetchall()
31
32
33def on_click():
34 insertTo(ti.get())
35 createTreeView()
36
37
38def createTreeView():
39 rows = selectAll(cur)
40 tree = ttk.Treeview(root, column=("ID", "logMessage", "datum"), show='headings')
41 tree.heading("#1", text="ID")
42 tree.heading("#2", text="Log-Eintrag")
43 tree.heading("#3", text="Datum")
44 tree.place(x=10, y=10, anchor=NW)
45
46 for r in rows:
47 tree.insert("", END, values=r)
48
49
50def loop():
51 if __name__ in "__main__":
52 mainloop()
53
54
55root = Tk()
56root.geometry('800x400')
57
58win = Frame(root)
59win.pack(fill=BOTH, expand=1)
60
61ti = Entry(root)
62ti.pack()
63
64
65
66tree = ttk.Treeview(root)
67
68button = Button(win, text="save", command=on_click).place(x=180, y=365, anchor=NW)
69
70createTreeView()
71loop()
72