【发布时间】:2017-03-20 22:42:58
【问题描述】:
我有一个 tkinter 应用程序,我正在开发一个笔记召回工具。我的问题出在 .grid 布局中。我想知道是否有一种方法可以使用.columnconfigure() 和.rowconfigure() 配置所有行和所有列的最小大小,使用范围之类的东西来定义所有行/列。现在我必须分别为每行和每列定义minsize=。似乎应该有一种更简单的方法来一次定义所有行/列。
这是我的代码
from tkinter import *
from tkinter.ttk import *
import tkinter.font
import subprocess as sub
import tkinter.messagebox
#~~~~~~~~~~~< spacer grid >~~~~~~~~~~~
spacerC0=Label(root, text="0").grid(row = 1, column = 0)
spacerC1=Label(root, text="1").grid(row = 1, column = 1)
spacerC2=Label(root, text="2").grid(row = 1, column = 2)
spacerC3=Label(root, text="3").grid(row = 1, column = 3)
spacerC4=Label(root, text="4").grid(row = 1, column = 4)
spacerC5=Label(root, text="5").grid(row = 1, column = 5)
spacerC6=Label(root, text="6").grid(row = 1, column = 6)
spacerC7=Label(root, text="7").grid(row = 1, column = 7)
spacerC8=Label(root, text="8").grid(row = 1, column = 8)
spacerC9=Label(root, text="9").grid(row = 1, column = 9)
root.columncel(root, text="0").grid(row = 1)
spacerR1=Label(root, text="1").grid(row = 2)
spacerR2=Label(root, text="2").grid(row = 3)
spacerR3=Label(root, text="3").grid(row = 4)
spacerR4=Label(root, text="4").grid(row = 5)
spacerR5=Label(root, text="5").grid(row = 6)
spacerR6=Label(root, text="6").grid(row = 7)
spacerR7=Label(root, text="7").grid(row = 8)
spacerR8=Label(root, text="8").grid(row = 9)
spacerR9=Label(root, text="9").grid(row = 10)
root.rowconfigure(0, minsize=60)
root.rowconfigure(1, minsize=60)
root.rowconfigure(2, minsize=60)
root.rowconfigure(3, minsize=60)
root.rowconfigure(4, minsize=60)
root.rowconfigure(5, minsize=60)
root.rowconfigure(6, minsize=60)
root.rowconfigure(7, minsize=60)
root.rowconfigure(8, minsize=60)
root.rowconfigure(9, minsize=60)
root.rowconfigure(10, minsize=60)
【问题讨论】:
-
没有专门内置的,但你只需要一个简单的循环。
-
刚刚在这篇文章中收到了“热门问题”的通知,我来看看......现在看到这太痛苦了,我已经学会了如何编写 DRY 代码。 :D 这是我的第一篇文章之一,现在我什至不会梦想编写这样的代码,哈哈。
标签: python python-3.x tkinter