python - 是否可以减小 tkinter 中的按钮大小?
问题描述
我正在开发一个小文本编辑器,目前正在制作按钮,在图片下方的“B”按钮上加粗。我想缩小他的尺寸,以使他适合他的真实尺寸,就像一个方形盒子,并摆脱额外的高度。
我怎么能低于这个似乎是默认最小值的尺寸?框架和按钮高度都设置为 1 并期望一个整数,所以我不允许低于 0.5 之类的值。
top_menu = tk.Frame(root)
bold_button = tk.Button(top_menu, text='B', font=('EB Garamond ExtraBold',)) #here a tuple because tkinter needs it when the font name have multiple spaces
bold_button.pack(side='left', padx=4)
解决方案
和属性以字符为单位(例如:width
表示一个平均字符的大小)。如果按钮有图像,您可以以像素为单位指定宽度和高度。height
1
按钮可以同时包含图像和文本,因此一个简单的技巧是添加一个单像素透明像素作为图像,然后您可以指定像素大小。
padx
和选项也影响按钮的pady
大小。如果您想获得精确的尺寸,则需要将其设置为零。
这是一个简单的例子:
import tkinter as tk
root = tk.Tk()
root.geometry("200x100")
pixel = tk.PhotoImage(width=1, height=1)
toolbar = tk.Frame(root)
toolbar.pack(side="top")
for size in (12, 16, 24, 32):
button = tk.Button(toolbar, text=str(size), width=size, height=size,
image=pixel, compound="center", padx=0, pady=0)
button.pack(side="left")
root.mainloop()
推荐阅读
- php - 有没有办法使用 PHP 在日期格式和正则表达式之间进行转换?
- excel - 查找变量范围的结尾
- java - k个部分的归并排序
- php - 具有任何字符的 laravel 路线,直到下一个 /
- python - /main/insert_phone/ 处的 FileNotFoundError
- javascript - 卡在意外的容器子节点上 - javascript HTML
- google-apps-script - TypeError:无法设置未定义的属性“frozenRowCount”(第 6 行,文件“Header-Row-Frozen”)
- sql - 如何在同一个 SQL 查询中组合子句 LIKE 和 BETWEEN?
- php - 如何配置现有的 Apache 2 服务器以使用 PHP?
- python - 为什么我的代码说名称“计数”未定义