Python tkinter修改Button边框颜色时Frame方案不生效如何解决
你用Frame模拟按钮边框的方案逻辑成立,代码未生效的原因是按钮布局时未预留内边距,Frame的背景色完全被按钮遮挡,无法呈现边框效果,按以下方式修改即可生效:
方案1:调整现有Frame嵌套代码
在按钮的pack()方法中添加padx、pady参数,数值对应你需要的边框粗细,留出空隙让Frame的背景色露出,即可形成按钮边框效果。
import tkinter from tkinter import * root = Tk() l_f = Frame(root, bg="black") l_f.pack() # 原代码中fg为白色和按钮背景色重复,已修改为黑色避免文字不可见 l = Button(l_f, text="fdffdfd", bg="white", fg="black") # padx/pady数值即为边框宽度,可按需调整 l.pack(padx=2, pady=2) root.mainloop()
方案2:直接用Button原生参数实现边框
不需要嵌套Frame也可以直接修改按钮自带的边框参数实现效果:
import tkinter from tkinter import * root = Tk() # bd为边框宽度,relief设为solid是实线边框,highlightbackground为边框颜色 l = Button(root, text="fdffdfd", bg="white", fg="black", bd=0, highlightthickness=2, highlightbackground="black", relief="solid") l.pack() root.mainloop()
内容的提问来源于stack exchange,提问作者Krys
相关产品推荐
相关产品推荐

