You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的Tkinter中创建居中的成绩输入网格

如何用Tkinter创建居中的成绩册网格布局?

嘿,我来帮你把这个成绩册界面改得更专业!你原来用place()布局手动定位控件不仅麻烦,还很难做出整齐居中的网格效果。换成Tkinter的grid()布局就轻松多了,它天生就是用来做这种行列对齐的界面的。

下面是改造后的完整代码,实现了居中显示的网格成绩册,每个月份和类别对应一个输入框:

import tkinter as tk

# 主窗口基础设置
window8 = tk.Tk()
window8.title('Grades')
window8.geometry('1000x600')  # 可以根据需求调整窗口大小,也可以后续改成自适应

# 让窗口启动时自动居中
window8.update_idletasks()
win_width = window8.winfo_width()
win_height = window8.winfo_height()
screen_width = window8.winfo_screenwidth()
screen_height = window8.winfo_screenheight()
x_pos = (screen_width // 2) - (win_width // 2)
y_pos = (screen_height // 2) - (win_height // 2)
window8.geometry(f'{win_width}x{win_height}+{x_pos}+{y_pos}')

# 统一管理月份和类别数据,后续修改更方便
months = ['9', '10', '11', '12', '1', '2', '3', '4', '5', '6']
categories = ['Category1', 'Category2', 'Category3']

# 创建表头:第一行显示月份
# 第一列留空放"Categories"标签
tk.Label(window8, text='Categories', font=('Arial', 10, 'bold')).grid(row=0, column=0, padx=15, pady=10, sticky='w')
for col_idx, month in enumerate(months, start=1):
    tk.Label(window8, text=month, font=('Arial', 10, 'bold')).grid(row=0, column=col_idx, padx=15, pady=10)

# 创建类别列和对应的输入框网格
for row_idx, category in enumerate(categories, start=1):
    # 左侧的类别标签
    tk.Label(window8, text=category).grid(row=row_idx, column=0, padx=15, pady=10, sticky='w')
    # 每个类别对应的月份输入框
    for col_idx, month in enumerate(months, start=1):
        grade_entry = tk.Entry(window8, width=5)
        grade_entry.grid(row=row_idx, column=col_idx, padx=15, pady=10)

window8.mainloop()

关键改动说明:

  • 用列表管理数据:把月份和类别放进列表里,后续要添加/删除类别或月份,只需要修改列表,不用重复写控件代码,维护起来超方便。
  • 窗口自动居中:通过获取屏幕和窗口的尺寸,计算出居中坐标,让界面打开时就显示在屏幕中央,更符合用户习惯。
  • grid()布局的妙用:
    • 用row和column参数直接指定控件的行列位置,自动帮你对齐所有控件,不用手动算x/y坐标。
    • padx和pady设置控件间的间距,让界面不拥挤,更美观。
    • sticky='w'让类别标签左对齐,和输入框的位置更协调。
  • 动态生成输入框:通过嵌套循环,自动为每个类别+月份的组合创建输入框,完美对应成绩册的需求。

内容的提问来源于stack exchange,提问作者Fel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 22:37:27