Tkinter:如何为create_rectangle创建的矩形设置不同颜色的边框?
解决Tkinter矩形边框分色问题
Tkinter的create_rectangle方法本身不支持单独设置四条边框的颜色,只能通过outline参数统一指定边框色。要实现上下边框白色、左右边框黑色的效果,可采用以下两种实用方法:
方法一:单独绘制四条边框线
先绘制不带边框的填充矩形,再用create_line分别画出不同颜色的四条边框,线条宽度和原矩形边框宽度保持一致即可:
# 定义矩形坐标 xmin, ymin, xmax, ymax = 50, 50, 200, 150 fill_color = "lightgray" border_width = 2 # 与原outline宽度匹配 # 绘制填充矩形(无外框) self.master.create_rectangle(xmin, ymin, xmax, ymax, fill=fill_color, outline="") # 绘制上下白色边框 self.master.create_line(xmin, ymin, xmax, ymin, fill="white", width=border_width) self.master.create_line(xmin, ymax, xmax, ymax, fill="white", width=border_width) # 绘制左右黑色边框 self.master.create_line(xmin, ymin, xmin, ymax, fill="black", width=border_width) self.master.create_line(xmax, ymin, xmax, ymax, fill="black", width=border_width)
方法二:叠加两个矩形
通过叠加两个仅显示对应边框的矩形实现效果,需注意调整坐标偏移避免边框错位:
xmin, ymin, xmax, ymax = 50, 50, 200, 150 fill_color = "lightgray" border_width = 2 # 先绘制带黑色左右边框的矩形 self.master.create_rectangle(xmin, ymin, xmax, ymax, fill=fill_color, outline="black", width=border_width) # 再绘制仅显示上下白色边框的矩形(左右边超出原矩形范围,隐藏左右边框) self.master.create_rectangle(xmin - border_width, ymin, xmax + border_width, ymax, fill="", outline="white", width=border_width)
两种方法中,方法一逻辑清晰、不易出错,推荐优先使用。
内容的提问来源于stack exchange,提问作者Abdullah Al Obaidi
相关产品推荐
相关产品推荐

