利用tkinter设计系统界面
时间: 2023-11-14 10:06:09 浏览: 82
好的,以下是一个简单的 tkinter 界面设计:
``` python
import tkinter as tk
import sqlite3
class RankingApp:
def __init__(self, master):
self.master = master
self.master.title("制药工程专业排名前10大学")
self.canvas = tk.Canvas(self.master, width=600, height=400)
self.canvas.pack()
self.title_label = tk.Label(self.canvas, text="制药工程专业排名前10大学", font=("Arial", 20))
self.title_label.place(relx=0.5, rely=0.1, anchor="center")
self.refresh_button = tk.Button(self.canvas, text="刷新排名", command=self.refresh)
self.refresh_button.place(relx=0.5, rely=0.9, anchor="center")
self.table_frame = tk.Frame(self.canvas)
self.table_frame.place(relx=0.5, rely=0.5, anchor="center")
self.table_header = tk.Label(self.table_frame, text="排名\t大学名称\t总分", font=("Arial", 12))
self.table_header.grid(row=0, column=0, columnspan=2, sticky="w")
self.table_rankings = []
for i in range(10):
ranking_label = tk.Label(self.table_frame, font=("Arial", 12))
ranking_label.grid(row=i+1, column=0, sticky="w")
self.table_rankings.append(ranking_label)
school_label = tk.Label(self.table_frame, font=("Arial", 12))
school_label.grid(row=i+1, column=1, sticky="w")
self.table_rankings.append(school_label)
score_label = tk.Label(self.table_frame, font=("Arial", 12))
score_label.grid(row=i+1, column=2, sticky="w")
self.table_rankings.append(score_label)
self.refresh()
def refresh(self):
conn = sqlite3.connect("pharmaceutical_engineering.db")
c = conn.cursor()
c.execute("SELECT * FROM ranking ORDER BY score DESC LIMIT 10")
data = c.fetchall()
conn.close()
for i in range(10):
self.table_rankings[i*3].config(text=str(i+1)+"\t")
self.table_rankings[i*3+1].config(text=data[i][0]+"\t")
self.table_rankings[i*3+2].config(text=str(data[i][1])+"\t")
root = tk.Tk()
app = RankingApp(root)
root.mainloop()
```
该界面包括一个标题、一个刷新按钮和一个表格,表格中显示制药工程专业排名前10的大学数据。当用户点击刷新按钮时,程序会从本地数据库中读取最新的数据,并更新表格中的数据。
阅读全文