def query(): global record conn = sqlite3.connect('billing.db') c = conn.cursor() c.execute("SELECT *, oid FROM billing") records = c.fetchall() # print(records) print_records = '' for record in records: print_records += str(record[0]) + " " + str(record[1]) + " " + str(record[2]) \ + " " + str(record[3]) + " " + str(record[4]) + " " + str(record[5]) \ + " " + str(record[6]) + " " + str(record[7]) + "\n" show = Label(root, width=120, text=print_records, anchor=NW) show.grid(row=2, column=3, columnspan=2) show.place(x=402, y=50, height=510) show.config(font=("TimesNewRoman", 10)) conn.commit() conn.close()
Here is a very simple example of using ttk.Treeview
to display your data from database:
def query():
# Same code above...
records = [('Hello','World'),('This','is'),('Treeview','widget')] # This will c.fetchall()
cols = ('First column','Second columns') # Change this with whatever you want your column name to be
tree = ttk.Treeview(root,columns=cols,show='headings',height=100)
tree.pack(padx=10,pady=10)
for col in cols: # Set treeview attributes
tree.heading(col,text=col)
tree.column(col,width=100,anchor='center')
for items in records: # Insert values inside the treeview
tree.insert('','end',values=items)
Keep in mind that since this is a ttk
widget, you will have to import it first:
from tkinter import ttk
If you want your column to have separate widths, then check this answer
Once I clicked the query to show in treeview widget, it duplicates all the records in database. How to remove duplicate records and show only the records that has been added in database?
def show(self):
global record
conn = sqlite3.connect('billing.db')
c = conn.cursor()
c.execute("SELECT *, oid FROM billing")
self.records = c.fetchall()
for items in self.records:
self.table.insert('', 'end', values=items)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.