【问题标题】:How to set a certain amount of rows and columns of a Tkinter grid?如何设置 Tkinter 网格的一定数量的行和列?
【发布时间】:2016-12-02 10:52:48
【问题描述】:

所以我正在尝试为我的 A Level 课程创建一个二十一点游戏(嗯,我处于早期阶段)并且我正在使用 Tkinter 网格来定位我的所有小部件。

我想要一个有 20 列和 10 行的网格。 但是,在我的程序中,我只使用第 1 到 18 列和第 1 到 18 行。

我如何告诉 Tkinter 我仍然希望第 0 和第 19 列和第 0 和第 9 行为空白,所以它认为我不希望我的网格只有 9 行和 19 列?

假设我有这个作为我的基本程序:

from tkinter import *
window=Tk()
window.pack()
l=Label(window, text='Label1').grid(column=8, row=1)
l2=Label(window, text='Label2').grid(column=1, row=8)

所以,在这个程序中,网格会认为它只需要 9 列和 9 行,但我实际上想要列号 10 (9) 作为空格,行号 10 (9) 作为空格也是。

请帮忙,我必须在两周内完成这个程序。

【问题讨论】:

  • 顺便说一句:如果您需要ll2,那么您必须分两步完成l = Label()l.grid()。现在您将None 分配给l,因为grid() 总是返回None

标签: python tkinter graphics grid


【解决方案1】:

默认空行/列的高度/宽度为 0(零),您看不到它(但它存在)。

您可以设置行或列的最小大小(即行/列编号 9)

 window.rowconfigure(9, {'minsize': 30})
 window.columnconfigure(9, {'minsize': 30})

 # or

 window.rowconfigure(9, minsize=30)
 window.columnconfigure(9, minsize=30)

或者您可以将Label 不带文本或带空格作为文本。


import tkinter as tk

window = tk.Tk()

l1 = tk.Label(window, text='Label1')
l1.grid(column=8, row=1)

l2 = tk.Label(window, text='Label2')
l2.grid(column=1, row=8)

# add empty label in row 0 and column 0
l0 = tk.Label(window, text='     ')
l0.grid(column=0, row=0)

# set minimal size for row 9 and column 9
window.rowconfigure(9, {'minsize': 30})
window.columnconfigure(9, {'minsize': 30})

window.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    • 2020-01-06
    • 2017-12-08
    • 2021-01-06
    • 2022-01-23
    相关资源
    最近更新 更多