繁体   English   中英

摆脱tkinter中小部件周围的空白

[英]get rid of blank space around widgets in tkinter

我将小部件放在带有.grid的窗口上,并注意到小部件周围有空间。 我用highlightthickness厚度修复了画布小部件上的问题,但这不适用于按钮小部件。 当窗口背景为灰色且按钮周围有空白时,它看起来并不酷。 PS我在macOS Sierra上使用python3

root = Tk()
root.configure(bg='grey')

w = Canvas(root, width=150, height=150, highlightthickness=0)
w.grid(row=1, column=1, sticky="nsew")

clear_btn = Button(text="Clear", width=15, command=lambda: w.delete("all"))
clear_btn.grid(row=2, column=1)

root.mainloop()

PS TKinter看起来像是在小部件周围留有边界 建议该人使用highlightbackground ,但是在对窗口小部件进行屏幕截图时,窗口小部件周围仍然有空白。

要使按钮充满它所占据的网格框的整个空间,请尝试将grid()函数的sticky参数设置为"NSEW"

from tkinter import *

root = Tk()
root.configure(bg = "grey")

w = Canvas(root, width = 150, height = 150, highlightthickness = 0)
w.grid(row = 1, column = 1, sticky = "NSEW")

clear_btn = Button(text = "Clear", width = 15, command = lambda: w.delete("all"))
clear_btn.grid(row = 2, column = 1, sticky  =  "NSEW")

root.mainloop()

之前:

之前

后:

后

注意:这些窗口的外观在操作系统之间甚至在同一操作系统上的不同视觉主题之间可能会略有不同。

我没有OSX,所以无法检查,但是我认为,如果您使用ttk和与默认样式不同的样式(例如'clam'),则可以配置所需的东西。

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.configure(bg='grey')

style = ttk.Style(root)
style.theme_use('clam')

w = tk.Canvas(root, width=150, height=150, highlightthickness=0)
w.grid(row=1, column=1, sticky="nsew")

clear_btn = ttk.Button(text="Clear", width=15, command=lambda: w.delete("all"))
clear_btn.grid(row=2, column=1)

root.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM