首页 > 解决方案 > Tkinter 完美正方形的 X 和 Y 是多少?

问题描述

快速提问,当你将类似的东西padx = 10, pady = 10放入标签/按钮时,它会给你一个矩形。

有谁知道 X 乘 Y 是一个完美的正方形吗?

标签: pythontkinter

解决方案


标签的宽度和高度取决于几个因素 - 使用的字体、使用的图像、边框宽度、填充等。然而,其中许多是对称的。

如果你想要一个完美的正方形,你需要从一个图像开始(这会导致widthheight属性被视为像素),或者一个字符与它们一样高的字体(即使你没有任何文本)。

换句话说,没有图像heightwidth指代一些平均大小的字符。除非您的字体在 x 和 y 轴上相同,否则这些属性将解析为不同数量的像素。如果您在标签中包含一个图像——即使只是一个像素图像——那么width并且height以像素为单位而不是字符。

这是一个使用图像创建方形标签的示例:

import tkinter as tk
root = tk.Tk()
root.geometry("200x200")

image = tk.PhotoImage(width=1, height=1)
label = tk.Label(root, image=image, width=50, height=50, background="red")
label.place(relx=.5, rely=.5, anchor="c")

root.mainloop()

在此处输入图像描述


推荐阅读