青亭浅 2024-05-20 14:53 采纳率: 88.2%
浏览 1
已结题

(关键词-Class)


from tkinter import *
from tkinter import ttk


class studentClass():
    def __init__(self, master):
        self.name=StringVar()
        self.master=master
        self.createStudent()


    def createStudent(self):
        bai=Label(self.master)
        bai.grid(row=0)
        self.name=Entry(self.master,textvariable=self.name)
        self.name.grid(row=1,column=0)

        Button(self.master,text="查询").grid(row=1,column=1,padx=10)

        Button(self.master,text="新增").grid(row=1,column=2,padx=10)

        Button(self.master,text="导入").grid(row=1,column=3,padx=10)

        Button(self.master,text="导出").grid(row=1,column=4,padx=10)


        columns = ("name", "chinese", "math", "english")

        self.tree_view =ttk.Treeview(self.master, show='headings', columns=columns)
        self.tree_view.column("name", width=80, anchor='center')
        self.tree_view.column("chinese", width=80, anchor='center')
        self.tree_view.column("math", width=80, anchor='center')
        self.tree_view.column("english", width=80, anchor='center')
        self.tree_view.heading('name', text="姓名")
        self.tree_view.heading('chinese', text="语文")
        self.tree_view.heading('math', text="数学")
        self.tree_view.heading('english', text="英语")
        self.tree_view.grid()


class adminClass():
    def __init__(self, master):
        self.master = master
        Button(master, text="这是招聘管理界面", font=("微软雅黑", 14), fg="white", bg="#96CDCD").pack()


class scoreClass():
    def __init__(self, master):
        self.master = master
        Label(master, text="这是打分管理界面").pack()


class journalClass():
    def __init__(self, master):
        self.master = master
        Label(master, text="这是日志管理界面").pack()


class discussClass():
    def __init__(self, master):
        self.master = master
        Label(master, text="这是讨论区管理界面").pack()


root = Tk()

root.geometry("700x500")

frame = Frame(root, width=100, height=500, highlightbackground="#668B8B", highlightthickness=3)
frame.config(background="#96CDCD")
frame.pack(fill=Y, side=LEFT)

bai = Label(frame)

student = Label(frame, text="学生系统", font=("微软雅黑", 14), fg="white", bg="#96CDCD")
student.place(x=5, y=30)

admin = Label(frame, text="招聘系统", font=("微软雅黑", 14), fg="white", bg="#96CDCD")
admin.place(x=5, y=120)

score = Label(frame, text="打分管理", font=("微软雅黑", 14), fg="white", bg="#96CDCD")
score.place(x=5, y=210)

journal = Label(frame, text="日志管理", font=("微软雅黑", 14), fg="white", bg="#96CDCD")
journal.place(x=5, y=300)

discuss = Label(frame, text="讨论区", font=("微软雅黑", 14), fg="white", bg="#96CDCD")
discuss.place(x=5, y=390)

stuFrame = Frame(root)
admFrame = Frame(root)
scoFrame = Frame(root)
jouFrame = Frame(root)
disFrame = Frame(root)

studentClass(stuFrame)
adminClass(admFrame)
scoreClass(scoFrame)
journalClass(jouFrame)
discussClass(disFrame)

def stuFuntion(event=None):

    stuFrame.pack()
    admFrame.pack_forget()
    scoFrame.pack_forget()
    jouFrame.pack_forget()
    disFrame.pack_forget()


def admFuntion(event=None):

    admFrame.pack()
    stuFrame.pack_forget()
    scoFrame.pack_forget()
    jouFrame.pack_forget()
    disFrame.pack_forget()


def scoFuntion(event=None):

    scoFrame.pack()
    stuFrame.pack_forget()
    jouFrame.pack_forget()
    disFrame.pack_forget()
    admFrame.pack_forget()


def jouFuntion(event=None):

    jouFrame.pack()
    stuFrame.pack_forget()
    disFrame.pack_forget()
    admFrame.pack_forget()
    scoFrame.pack_forget()


def disFuntion(event=None):

    disFrame.pack()
    stuFrame.pack_forget()
    disFrame.pack_forget()
    admFrame.pack_forget()
    scoFrame.pack_forget()


student.bind("<Button-1>", stuFuntion)
admin.bind("<Button-1>", admFuntion)
score.bind("<Button-1>", scoFuntion)
journal.bind("<Button-1>", jouFuntion)
discuss.bind("<Button-1>", disFuntion)

root.title("学生管理系统")

root.mainloop()

怎末让studentClass类中的图形化界面排版更加漂亮

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-05-20 14:53
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    【您想要解决的问题】:您想要解决的问题是如何让studentClass类中的图形化界面(GUI)排版更加美观。

    【问题出现原因】:在现有的代码中,GUI的布局和样式可能显得比较基础,没有进行深入的定制化设计,这可能导致界面看起来不够吸引人或不够专业。

    【问题解决方案】:要改善GUI的美观度,可以从以下几个方面入手:

    1. 使用更现代的布局管理器,例如ttk模块中的FramePanedWindow
    2. 定制化控件的样式,例如按钮、标签和输入框的字体、颜色和大小。
    3. 引入图标和图像来增强界面的视觉效果。
    4. 使用网格布局(grid)或相对布局(pack)来更精细地控制控件的位置和大小。
    5. 添加一些动态效果,比如按钮的悬停效果。

    【提供代码】:以下是对studentClass类中创建学生界面部分的代码进行一些改进的示例:

    class studentClass():
        def __init__(self, master):
            self.master = master
            self.create_style()
            self.create_student()
    
        def create_style(self):
            style = ttk.Style()
            style.theme_use('clam')  # 使用更现代的主题
            style.configure('TButton', font=('微软雅黑', 12), foreground='white', background='#96CDCD')
            style.configure('TLabel', font=('微软雅黑', 12), foreground='black', background='#96CDCD')
            style.configure('TEntry', font=('微软雅黑', 12), foreground='black', background='white')
    
        def create_student(self):
            Label(self.master, text="姓名:").grid(row=0, column=0, padx=10, pady=10, sticky='w')
            self.name = Entry(self.master)
            self.name.grid(row=0, column=1, padx=10, pady=10)
    
            buttons_frame = Frame(self.master)
            buttons_frame.grid(row=1, column=0, columnspan=2, pady=10)
    
            Button(buttons_frame, text="查询", style='TButton').pack(side=LEFT, padx=5)
            Button(buttons_frame, text="新增", style='TButton').pack(side=LEFT, padx=5)
            Button(buttons_frame, text="导入", style='TButton').pack(side=LEFT, padx=5)
            Button(buttons_frame, text="导出", style='TButton').pack(side=LEFT, padx=5)
    
            columns = ("name", "chinese", "math", "english")
            self.tree_view = ttk.Treeview(self.master, show='headings', columns=columns)
            for col in columns:
                self.tree_view.heading(col, text=col.capitalize())
                self.tree_view.column(col, width=100, anchor='center')
            self.tree_view.grid(row=2, column=0, columnspan=2, pady=10)
    
    # 其他类和函数保持不变
    

    【代码运行方式】:这段代码需要在Python环境中运行,确保你已经安装了Tkinter库。你可以直接将这段代码复制到Python脚本中,并运行该脚本。

    【代码预期运行结果】:

    +----------------+----------------+----------------+----------------+
    | NAME           | CHINESE       | MATH           | ENGLISH        |
    +----------------+----------------+----------------+----------------+
    | (空白行供数据填充) | (空白行供数据填充) | (空白行供数据填充) | (空白行供数据填充) |
    +----------------+----------------+----------------+----------------+
    

    界面上的按钮和标签将具有更现代的字体和颜色,且按钮将被放置在一个单独的按钮框中,使得布局更加整洁。

    【推荐相关链接】:

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月29日
  • 已采纳回答 5月21日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 TeleScan不能修改bar
  • ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别
  • ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因
  • ¥15 NRF24L01能发送但是不能接收