在我的Tkinter程序中,我尝试了一种扩展Python中按钮大小的方法。当我尝试这些“宽度”和“高度”的东西时,我得到的只是看起来很乱,可能是用字体大小来指代宽度和高度。当我尝试在每个数字的末尾添加“ px”时,我得到一个错误。如何调整按钮的大小(以像素为单位)?
这是我当前的代码。
from tkinter import *
import tkinter as tk
root = tk.Tk()
root.geometry("960x600")
button_qwer = Button(root, text="asdfasdf", width="10", height="10")
button_asdf = Button(root, text="asdfasdf", width="20", height="20")
button_zxcv = Button(root, text="asdfasdf", width="30", height="30")
button_qwer.grid(row=0, column=0)
button_asdf.grid(row=0, column=1)
button_zxcv.grid(row=0, column=2)
root.mainloop()
答案 0 :(得分:2)
如果按钮上有图像,则宽度和高度以像素为单位。如果没有图像,则宽度和高度以字符数为基础,基于按钮使用的字体的字符“ 0”(零)的大小。如果同时具有图像和文本,则值以像素为单位。
一种解决方案是为其提供不可见的图像,以便将属性视为像素。由于边框和高光环等额外的装饰,按钮的大小仍然无法达到要求。如果需要精确的尺寸,则需要将这些选项也设置为零,或者调整宽度以考虑边框宽度。
示例:
.startSignInIntent()
另一种解决方案是创建具有特定大小的框架,然后使用from tkinter import *
import tkinter as tk
root = tk.Tk()
root.geometry("960x600")
null_image = tk.PhotoImage(width=0, height=0)
button_qwer = Button(root, text="asdfasdf", width="10", height="10",
image=null_image, compound="center", borderwidth=0,
highlightthickness=0, padx=0, pady=0)
button_asdf = Button(root, text="asdfasdf", width="20", height="20",
image=null_image, compound="center", borderwidth=0,
highlightthickness=0, padx=0, pady=0)
button_zxcv = Button(root, text="asdfasdf", width="30", height="30",
image=null_image, compound="center", borderwidth=0,
highlightthickness=0, padx=0, pady=0)
button_qwer.grid(row=0, column=0)
button_asdf.grid(row=0, column=1)
button_zxcv.grid(row=0, column=2)
root.mainloop()
将按钮放入框架中,以使其充满框架。
示例:
place