用python设计一个用于显示用户列表的GUI界面程序,包括用户名、年龄、出生日期、家庭地址等信息。(提示:先建立数据库表,然后在页面展示数据。)
import re #后续进行数据处理使用
import numpy as np #后续进行数据处理使用
from tkinter import * #GUI需要调用
from tkinter import messagebox
from tkinter.filedialog import *
class show_rank(Frame):
def __init__(self,master = None):
Frame.__init__(self,master)
self.grid()
self.CreateWindows()
def CreateWindows(self): #创建子组件
self.arm1 = Frame(self) #界面分为上中下三个Frame,arm1放第一行按钮
self.arm1.pack()
self.arm2 = Frame(self) #arm2放第二行标签和文本框
self.arm2.pack()
self.arm3 = Frame(self) #arm3放第第三行按钮
self.arm3.pack()
self.str1 = StringVar() #创建StringVar()对象,str1
self.str1.set('A') #设置初始值为’查看排名‘
self.way1 = Radiobutton(self.arm1, text = '查看排名', value = 'A', variable = self.str1) #单选按钮
self.way2 = Radiobutton(self.arm1, text = '优化', value = 'B', variable = self.str1)
self.find_file = askopenfilename(title='askopenfilename', filetypes=[('运动员得分数据','.txt')]) #选择文件
self.lab1 = Label(self.arm2, text = '文件路径') #创建label组件对象,显示文本为‘文件路径’
self.mas1 = Message(self.arm2, bg = 'black', fg = 'white', width = 200) #创建message组件对象,背景为黑,字体为白色
self.mas1.config(text = self.find_file) #显示文本为文件的绝对路径
self.butselect = Button(self.arm3, text = '查看', width = 8) #创建’查看’按钮
self.butselect['command'] = self.get_rank
self.butquit = Button(self.arm3,text='退出',width = 8,command=root.destroy) #创建‘取消’按钮
self.butselect.pack(side = LEFT) #pack调整位置
self.butquit.pack(side = LEFT)
self.way1.pack(side = LEFT)
self.way2.pack(side = LEFT)
self.lab1.pack(side = LEFT)
self.mas1.pack(side = LEFT)
def get_rank(self): #定义查看事件的处理程序
self.data_solve() #处理数据
if self.str1.get() == 'A': #选择直接输出排名(第一问)
self.get_rank1() #计算排名
messagebox.showinfo('排名',self.fin1_text)
if self.str1.get() == 'B': #选择优化后输出排名(第二问)
self.get_rank2() #计算排名
messagebox.showinfo('排名',self.fin2_text)