像素宽度和按钮高度?

时间:2018-09-05 21:45:39

标签: python python-3.x tkinter

在我的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()

1 个答案:

答案 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