【发布时间】:2021-08-18 02:36:48
【问题描述】:
我一直在浏览一些 tkinter 视频教程和文档,试图通过网格布局来解决间隔问题,以便将其用于我自己的应用程序,但是当我尝试使用网格间距时,它似乎添加了我没有编码的额外间距/填充。
我对此研究得越多,它就越像是 MacOS 与 Windows 的问题,但如果是这样的话,有人知道解决方法吗?
例如,我尝试复制并粘贴此链接中的计算器代码:https://zetcode.com/tkinter/layout/,我得到了两个截然不同的结果。
顶部图片是示例页面中的图片,看起来像是在 Windows 上完成的,而底部图片是我复制/粘贴代码并自己尝试时发生的。
这个间距并没有那么不好,如果我必须处理它,我想我会这样做,但是当我从视频教程中尝试下面的代码时,我的布局的间距大不相同。
我也链接了视频,因为在某一时刻,编码员遇到了一些相似的间距,但随后对其进行了修复,并且输入相同的代码对我来说并没有导致相同的修复。
from tkinter import *
root=Tk()
root.title("Simple Calculator")
e = Entry(root, width=35, borderwidth=5)
e.grid(row=0, column=0, columnspan=3, padx=10, pady=10)
def button_click(number):
#e.delete(0, END)
e.insert(0, number)
# Define Buttons
button_1 = Button(root, text="1", padx=40, pady=20, command=lambda: button_click(1))
button_2 = Button(root, text="2", padx=40, pady=20, command=lambda: button_click(2))
button_3 = Button(root, text="3", padx=40, pady=20, command=lambda: button_click(3))
button_4 = Button(root, text="4", padx=40, pady=20, command=lambda: button_click(4))
button_5 = Button(root, text="5", padx=40, pady=20, command=lambda: button_click(5))
button_6 = Button(root, text="6", padx=40, pady=20, command=lambda: button_click(6))
button_7 = Button(root, text="7", padx=40, pady=20, command=lambda: button_click(7))
button_8 = Button(root, text="8", padx=40, pady=20, command=lambda: button_click(8))
button_9 = Button(root, text="9", padx=40, pady=20, command=lambda: button_click(9))
button_0 = Button(root, text="0", padx=40, pady=20, command=lambda: button_click(0))
button_add = Button(root, text="+", padx=39, pady=20, command=lambda: button_click(7))
button_equal = Button(root, text="=", padx=98, pady=20, command=lambda: button_click(7))
button_clear = Button(root, text="clear", padx=88, pady=20, command=lambda: button_click(7))
# Put the buttons on the Screen
button_1.grid(row=3, column=0)
button_2.grid(row=3, column=1)
button_3.grid(row=3, column=2)
button_4.grid(row=2, column=0)
button_5.grid(row=2, column=1)
button_6.grid(row=2, column=2)
button_7.grid(row=1, column=0)
button_8.grid(row=1, column=1)
button_9.grid(row=1, column=2)
button_0.grid(row=4, column=0)
button_add.grid(row=5, column=0)
button_equal.grid(row=5, column=1, columnspan=2)
button_clear.grid(row=4, column=1, columnspan=2)
root.mainloop()
第一张图片是我的,第二张是编码员/YouTuber 的。在构建 UI 时,列之间的间距/填充似乎太多了,无法“处理”。有人有解决方法吗?我想要具有明显 Windows 布局/间距的更简洁、更简洁的外观。
【问题讨论】:
-
您知道
padx的值以像素为单位吗?所以它取决于显示分辨率,youtuber应该已经解释了。 -
仍在尝试这些。发现我的 python 版本有其他问题,所以我也在尝试解决这个问题。
-
这应该是这个问题的答案的一部分吗?我不这么认为
-
抱歉,我好像是在回复要求选择正确答案的评论。
-
也许你应该接受一些东西,问题询问差异,两个值都提到它。值得回复他们,因为他们花时间在你的问题上