首页 > 编程问答 >如何在 Tk.grid ( grid(10x5) 中定义固定标题

如何在 Tk.grid ( grid(10x5) 中定义固定标题

时间:2024-07-20 22:47:10浏览次数:8  
标签:python tkinter

我正在创建一个 tkinter 网格,包含 10 列和 5 行,包括一个输入文本框。我需要知道如何创建固定标题并为标题分配标题。任何建议,将不胜感激

from tkinter import *

root = Tk()
frame = Frame(root)
root.rowconfigure(0, weight=5)
root.columnconfigure(0, weight=10)
frame.grid(row=0, column=0, sticky="news")

grid = Frame(frame)
grid.grid(sticky="news", column=0, row=7, columnspan=2)
frame.rowconfigure(7, weight=1)
frame.columnconfigure(0, weight=1)

grid.Label(root, text='Title-1').grid(row=0, column=0)
grid.Label(root, text='Title-2').grid(row=0, column=1)
grid.Label(root, text='Title-3').grid(row=0, column=2)
grid.Label(root, text='Title-4').grid(row=0, column=3)
grid.Label(root, text='Title-5').grid(row=0, column=4)
grid.Label(root, text='Title-6').grid(row=0, column=5)
grid.Label(root, text='Title-7').grid(row=0, column=6)
grid.Label(root, text='Title-8').grid(row=0, column=7)
grid.Label(root, text='Title-9').grid(row=0, column=8)
grid.Label(root, text='Title-10').grid(row=0, column=9)


x=1
#example values
for x in range(10):
    for y in range(5):
        text = Entry(frame)
        text.grid(column=x, row=y, sticky="news")

frame.columnconfigure(tuple(range(10)), weight=1)
frame.rowconfigure(tuple(range(5)), weight=1)

root.mainloop()
grid.Label(root, text='Title-1').grid(row=0, column=0)

你代码的问题在于你试图将标签放置在 grid 框架内,但使用 root 作为父级来创建它们。这会导致标签被放置在根窗口中,而不是你的网格中。

以下是如何使用 grid() 管理器在 Tkinter 中创建具有固定标题的 10x5 网格的方法:

import tkinter as tk

root = tk.Tk()
root.title("Grid Example")

# 创建标题标签
for i in range(10):
    tk.Label(root, text=f"Title-{i+1}").grid(row=0, column=i, sticky="ew")

# 创建条目小部件
for row in range(1, 6):  # 从第 1 行开始,为标题留出空间
    for col in range(10):
        entry = tk.Entry(root)
        entry.grid(row=row, column=col, sticky="nsew")

# 配置行和列以进行调整大小
for i in range(10):
    root.columnconfigure(i, weight=1)
for i in range(5):
    root.rowconfigure(i, weight=1)

root.mainloop()

解释:

  1. 创建标题标签:
  2. 我们使用循环创建 10 个标签,并使用 f"Title-{i+1}" 设置它们的文本。
  3. grid(row=0, column=i, sticky="ew") 将标签放置在第 0 行(第一行)和相应的列中。
  4. sticky="ew" 确保标签在水平方向(东-西)拉伸以填充单元格。

  5. 创建条目小部件:

  6. 我们使用嵌套循环创建 5 行和 10 列的条目小部件。
  7. row 从 1 开始,以便在标题下方留出空间。

  8. 配置行和列:

  9. root.columnconfigure(i, weight=1) root.rowconfigure(i, weight=1) 确保所有行和列在调整窗口大小时均匀调整大小。

通过这些更改,你的标题现在将固定在网格的顶部,并且条目将放置在它们下方。

标签:python,tkinter
From: 78769920

相关文章

  • python_day7(补1)
    数据类型​ 之前为列表类型​ 插入一个元组的介绍 之后还有字典,三者区别为括号方式()[]{}元组类型(tuple)使用:先定义一个元组数据​ vegetable_tuple='(tomato','corn','cucumber','carrot','corn','pumpkin)'与列表类型格式很像,不过只能取不能改,需要特......
  • 在 python 中写入 %appdata% 时出现奇怪的行为
    我试图将一些数据写入%appdata%。一切似乎都像Script1的输出中所示的那样工作。正在创建新目录并保存文件,并且也成功检索数据。但尝试查看文件资源管理器中的数据时,该文件夹不存在!CMD也找不到文件和目录。后来我手动创建了文件,检查了一下,发生了什么。CMD现在可以找到该文......
  • 使用 selenium 在 python 中打开 chrome 中的链接
    通过此链接https://bancadatistatisticaoas.inail.it/analytics/saw.dll?Dashboard&PortalPath=%2Fshared%2FBDS%2F_portal%2FINF_Definiti_Industria_e_Servizi我需要单击“FCostruzioni”,然后单击F41COSTRUZIONIED埃迪菲西。这是我的代码,但它不起作用。我做错了......
  • 七大排序算法的Python实现
    七大排序算法的Python实现1.冒泡排序(BubbleSort)算法思想冒泡排序通过重复交换相邻的未按顺序排列的元素来排序数组。每次迭代都将最大的元素“冒泡”到数组的末尾。复杂度分析时间复杂度:O(n^2)空间复杂度:O(1)defbubble_sort(arr):n=len(arr)for......
  • 同时加载 2 个 Tkinter 窗口。一个有动画的
    以下脚本独立运行以运行场景:首先打印结果,然后以动画结束绘图。importnumpyasnpimportmatplotlib.pyplotaspltimporttkinterastkfromtkinterimportttkfrommatplotlib.animationimportFuncAnimationdefrun_model():#Inputparameters(examplev......
  • python反序列化
    之前hgame中遇到python反序列化,这次正好借分享会来尽可能详细学习一下python反序列化基础知识什么是序列化?反序列化?在很多时候为了方便对象传输,我们往往会把一些内容转化成更方便存储、传输的形式。我们把“对象->字符串”的翻译过程称为“序列化”;相应地,把“字符串->对......
  • 我在 python 项目中不断收到“无法识别图像文件中的数据”错误
    我正在尝试向我的TK窗口添加一个图标,但我不断收到一条错误消息:Traceback(mostrecentcalllast):File"C:\Users\roger\source\repos\PythonApplication\PythonApplication.py",line7,in<module>windowIcon=tk.PhotoImage(file="C:/Users/roger/Downloa......
  • Python学习笔记41:游戏篇之外星人入侵(二)
    前言在上一篇文章,我们已经创建好了项目目录,在今天,我们主要编写入口模块的功能。mainmain.py模块是我们游戏程序的入口,所有我们需要在模块中编写游戏主启动以及主页面相关的代码。当前我们的main模块是这样的,这是我们创建项目时默认生成一些代码,接下来我们就要进行我们......
  • Python学习笔记39:进阶篇(二十八)pygame的使用之按键映射及按键失效问题解决
    前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,......
  • Python学习笔记40:游戏篇之外星人入侵(一)
    前言入门知识已经学完,常用标准库也了解了,pygame入门知识也学了,那么开始尝试小游戏的开发。当然这个小游戏属于比较简单的小游戏,复杂的游戏需要长时间的编写累计开发经验,同时也需要一定的时间才能编写出来。现在的话还是嫩了点。从基础的简单的开始,学习实践,慢慢的成长才......