青亭浅 2024-05-21 08:39 采纳率: 88.2%
浏览 2
已结题

(标签-python|关键词-for)



```python
from tkinter import *
from tkinter import ttk
class studentClass():
    def __init__(self, master):
        self.name = StringVar()
        self.master = master
        self.createStudent()


    def createStudent(self):
        # 设置主窗口背景颜色
        self.master.configure(bg="#96CDCD")

        # 创建一个大的容器,用于放置所有控件
        container = Frame(self.master, bg="#96CDCD")
        container.pack(pady=10, padx=10, fill=BOTH, expand=True)

        # 创建标签和输入框区域
        label_frame = Frame(container, bg="#96CDCD")
        label_frame.pack(side=TOP, pady=(10, 5))

        name_label = Label(label_frame, text="姓名:", bg="#96CDCD", fg="white")
        name_label.pack(side=LEFT, padx=5)

        self.name_entry = Entry(label_frame, textvariable=self.name, width=20)
        self.name_entry.pack(side=LEFT, padx=5)

        # 创建按钮区域
        button_frame = Frame(container, bg="#96CDCD")
        button_frame.pack(side=BOTTOM, pady=(5, 10))

        query_button = Button(button_frame, text="查询", bg="#96CDCD", fg="white", command=self.query)
        query_button.pack(side=LEFT, padx=10)

        add_button = Button(button_frame, text="新增", bg="#96CDCD", fg="white", command=self.add)
        add_button.pack(side=LEFT, padx=10)

        import_button = Button(button_frame, text="导入", bg="#96CDCD", fg="white", command=self.import_data)
        import_button.pack(side=LEFT, padx=10)

        export_button = Button(button_frame, text="导出", bg="#96CDCD", fg="white", command=self.export_data)
        export_button.pack(side=LEFT, padx=10)

        # 创建表格区域
        table_frame = Frame(container, bg="#96CDCD")
        table_frame.pack(side=TOP, fill=X, expand=True)

        columns = ("name", "sdept1", "sdept", "class","teacher","score","talent")

        self.tree_view = ttk.Treeview(table_frame, show='headings', columns=columns, style="Treeview")
        self.tree_view.tag_configure("oddrow", background="#EAEAEA")
        self.tree_view.tag_configure("evenrow", background="#FFFFFF")

        self.tree_view.column("name", width=80, anchor='center')
        self.tree_view.column("sdept1", width=80, anchor='center')
        self.tree_view.column("sdept", width=80, anchor='center')
        self.tree_view.column("class", width=80, anchor='center')
        self.tree_view.column("teacher", width=80, anchor='center')
        self.tree_view.column("score", width=80, anchor='center')
        self.tree_view.column("talent", width=80, anchor='center')

        self.tree_view.heading('name', text="姓名")
        self.tree_view.heading('sdept1', text="院系")
        self.tree_view.heading('sdept', text="专业")
        self.tree_view.heading('class', text="班级")
        self.tree_view.heading('teacher', text="负责教师")
        self.tree_view.heading('score', text="学生成绩")
        self.tree_view.heading('talent', text="擅长领域")
        infor=["韩浩","软件学院","新型平台软件","2205","胡春辉","100","体育"]
        self.tree_view.insert("","end",text="Item1",values=infor)

        self.tree_view.pack(pady=10, fill=BOTH, expand=True)

        self.tree_view.bind("<Double-1>",self.tree_vi)

        # 树形视图滚动条设置
        vsb = Scrollbar(table_frame, orient="vertical", command=self.tree_view.yview)
        vsb.pack(side=RIGHT, fill=Y)
        hsb = Scrollbar(table_frame, orient="horizontal", command=self.tree_view.xview)
        hsb.pack(side=BOTTOM, fill=X)
        self.tree_view.configure(yscrollcommand=vsb.set, xscrollcommand=hsb.set)

    def tree_vi(self,event=None):
        ro=Tk()
        ro.geometry("100x100")
        ro.mainloop()

    def query(self):
        pass

    def add(self):
        pass

    def import_data(self):
        pass

    def export_data(self):
        pass


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

    def createAdmin(self):
        cont = Frame(self.master)
        cont.pack(pady=10, padx=10, fill=BOTH, expand=True)

        lable_frame = Frame(cont)
        lable_frame.pack(side=TOP, pady=(10, 5))

        potion_lable = Label(lable_frame, text="职位:", fg="black")
        potion_lable.pack(side=LEFT, padx=5)

        self.position = Entry(lable_frame, font=('Verdana', 15), width=10)
        self.position.pack(side=LEFT, padx=5)
        # an
        button_frame = Frame(cont, bg="#96CDCD")
        button_frame.pack(side=BOTTOM, pady=(5, 10))

        query_button = Button(button_frame, text="查询", fg="black")
        query_button.pack(side=LEFT, padx=10)
        add_button = Button(button_frame, text="添加发布", fg="black")
        add_button.pack(side=LEFT, padx=10)

        self.table_frame = Frame(cont)
        self.table_frame.pack(side=TOP, fill=X, expand=True)

        self.columns = ("name", "position", "salary", "requirement")

        self.tree = ttk.Treeview(self.table_frame, show="headings", height=18, columns=self.columns)
        self.tree.tag_configure("oddrow", background="#EAEAEA")
        self.tree.tag_configure("evenrow", background="#FFFFFF")

        # # 表格的标题
        self.tree.column("name", width=80, anchor='center')
        self.tree.column("position", width=80, anchor='center')  # 表示列,不显示
        self.tree.column("salary", width=80, anchor='center')
        self.tree.column("requirement", width=80, anchor='center')

        self.tree.heading('name', text="公司")
        self.tree.heading('position', text="职位")
        self.tree.heading('salary', text="薪资")
        self.tree.heading('requirement', text="要求")

        self.tree.pack(pady=10, fill=BOTH, expand=True)

        # 定义树形结构与滚动条
        vsb = Scrollbar(cont, orient="vertical", command=self.tree.yview)
        vsb.pack(side=RIGHT, fill=Y)
        hsb = Scrollbar(cont, orient="horizontal", command=self.tree.xview)
        hsb.pack(side=BOTTOM, fill=X)
        self.tree.configure(yscrollcommand=vsb.set, xscrollcommand=hsb.set)

class scoreClass():
    def __init__(self, master):
        self.master = master
        self.createscore()

    def createscore(self):
        title_label = Label(self.master, text="这是理系统", font=("Arial", 16))
        title_label.pack(pady=10)

        # 创建按钮框架
        button_frame = Frame(self.master)
        button_frame.pack()

        # 创建输入框和按钮
        input_entry = Entry(button_frame, width=20)
        input_entry.pack(side="left", padx=5)

        # 创建下拉框

        query_button = Button(button_frame, text="查询", width=10)
        query_button.pack(side="left", padx=5)
        new_button = Button(button_frame, text="新增", width=10)
        new_button.pack(side="left", padx=5)

        # 创建 Treeview
        columns = ("name", "time", "sdept", "class")

        self.tree_view = ttk.Treeview(self.master, show='headings', columns=columns, style="Treeview")
        self.tree_view.tag_configure("oddrow", background="#EAEAEA")
        self.tree_view.tag_configure("evenrow", background="#FFFFFF")

        self.tree_view.column("name", width=80, anchor='center')
        self.tree_view.column("time", width=80, anchor='center')
        self.tree_view.column("sdept", width=80, anchor='center')
        self.tree_view.column("class", width=80, anchor='center')


        self.tree_view.heading('name', text="姓名")
        self.tree_view.heading('time', text="日期")
        self.tree_view.heading('sdept', text="任务进度")
        self.tree_view.heading('class', text="备注")



        self.tree_view.pack(pady=10, fill=BOTH, expand=True)

        # 插入示例数据

        # 创建空行
        empty_row = Label(self.master, text="")
        empty_row.pack()



class journalClass():
    def __init__(self, master):
        self.master = master
        self.createjournal()

    def createjournal(self):
        title_label = Label(self.master, text="这是日志管理系统", font=("Arial", 16))
        title_label.pack(pady=10)

        # 创建按钮框架
        button_frame = Frame(self.master)
        button_frame.pack()

        # 创建输入框和按钮
        input_entry = Entry(button_frame, width=20)
        input_entry.pack(side="left", padx=5)

        # 创建下拉框
        options = ["hjy", "hh", "sb"]
        selected_option = StringVar()
        selected_option.set(options[0])
        edit_combobox = ttk.Combobox(button_frame, textvariable=selected_option, values=options, width=10)
        edit_combobox.pack(side="left", padx=5)

        query_button = Button(button_frame, text="查询", width=10)
        query_button.pack(side="left", padx=5)
        new_button = Button(button_frame, text="新增", width=10)
        new_button.pack(side="left", padx=5)

        # 创建 Treeview
        columns = ("name", "time", "sdept", "class")

        self.tree_view = ttk.Treeview(self.master, show='headings', columns=columns, style="Treeview")
        self.tree_view.tag_configure("oddrow", background="#EAEAEA")
        self.tree_view.tag_configure("evenrow", background="#FFFFFF")

        self.tree_view.column("name", width=80, anchor='center')
        self.tree_view.column("time", width=80, anchor='center')
        self.tree_view.column("sdept", width=80, anchor='center')
        self.tree_view.column("class", width=80, anchor='center')


        self.tree_view.heading('name', text="姓名")
        self.tree_view.heading('time', text="日期")
        self.tree_view.heading('sdept', text="任务进度")
        self.tree_view.heading('class', text="备注")



        self.tree_view.pack(pady=10, fill=BOTH, expand=True)

        # 插入示例数据

        # 创建空行
        empty_row = Label(self.master, text="")
        empty_row.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(fill=BOTH, expand=True)
    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()

让每一个界面的图形化界面更美观
  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-05-21 08:39
    关注

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


    您想要解决的问题:

    您的问题是如何美化和改进一个使用Python和Tkinter库创建的图形用户界面(GUI)应用程序,使其界面更加美观。

    问题出现原因:

    1. 默认样式:Tkinter的默认样式可能看起来比较过时,不够现代。
    2. 颜色和布局:当前的颜色选择和布局可能不够吸引人。
    3. 交互性:界面的交互性可能需要增强,例如按钮点击后的反馈。
    4. 组件样式:组件(如按钮、标签、输入框)的样式可能需要统一和美化。

    问题解决方案:

    为了提升GUI的美观度,可以考虑以下几个方面:

    1. 使用样式:Tkinter允许通过ttk.Style()来设置组件的样式。
    2. 改进颜色主题:选择更加和谐的颜色主题。
    3. 增加图标和图像:在界面中添加图标和图像可以提升视觉效果。
    4. 改进布局:使用更现代的布局管理器,如gridpack的更高级用法。
    5. 交互性增强:为按钮和其他控件添加事件处理,提供更丰富的用户反馈。

    提供代码:

    以下是一些代码示例,用于改进您的GUI应用程序的美观度:

    from tkinter import *
    from tkinter import ttk
    
    # 设置样式
    style = ttk.Style()
    style.theme_use('clam')  # 选择一个主题
    style.configure("TButton", relief='flat', borderwidth=0, background='#D9D9D9')
    style.configure("TLabel", foreground='#333333')
    
    class StudentInterface:
        # ... 省略其他类定义 ...
    
    root = Tk()
    root.geometry("700x500")
    
    # ... 省略其他界面定义 ...
    
    root.mainloop()
    

    代码运行方式:

    • 确保您的系统上安装了Python。
    • 安装Tkinter库(通常Python自带此库)。
    • 将上述代码保存为.py文件。
    • 在命令行或终端中运行此文件。

    代码预期运行结果:

    • 应用将启动,显示一个具有改进样式和颜色主题的用户界面。
    • 按钮和其他组件将具有更现代的外观。
    • 如果添加了图标和图像,它们将增强界面的视觉效果。

    推荐相关链接:

    请注意,上述代码仅为示例,您需要将其与您的现有代码结合,并根据需要进行调整。

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上