如何在Python 3 Tkinter中添加白色实线分隔组件与程序其余部分?
在Tkinter健身APP中添加横向分隔线的两种实用方案
嘿,要实现这条贯穿左右的细白色分隔线其实超简单,我给你两种靠谱的方案,你可以根据需求选:
方案一:用Frame组件快速搞定
Frame是最直接的方式,把它的高度设得很小,背景色改成白色,再让它横向铺满窗口就行。你只需要在Tops.pack()之后、f1.pack()之前插入这段代码:
# 添加横向分隔线 separator = Frame(root, height=2, bg="white") separator.pack(fill=X, padx=10, pady=10)
修改后的完整代码如下:
import tkinter as tk from tkinter import * root = Tk() root.geometry("1600x1000+0+0") root.title("Ultimate Fitness Calculator") root.configure(bg='darkslategray') lbl_title = tk.Label(root,text="Welcome to the Ultimate Fitness Calculator by Cameron Su.", fg="white", bg = 'darkslategray') lbl_title.pack() Tops = Frame(root, width=1600, height=50, bg="darkslategray", relief=SUNKEN) Tops.pack(side=TOP) # 新增的分隔线代码 separator = Frame(root, height=2, bg="white") separator.pack(fill=X, padx=10, pady=10) f1 = Frame(root, width=1600, height=900, bg="darkslategray", relief=SUNKEN) f1.pack(side=LEFT) lblInfo = Label(Tops, font=('Gill Sans', 50), text="Ultimate Fitness Calculator", fg="white",bg="darkslategray", bd=10, anchor='w').grid(row=0, column=0) lblInfo = Label(Tops, font=('Gill Sans', 20), text="This multifunctional program calculates Basal Metabolic Rate, Total Daily Energy Expenditures \n and breaks down the amount of macronutrients needed to reach your fitness goals.", fg="white",bg="darkslategray", bd=10, anchor='w').grid(row=1, column=0) root.mainloop()
这里的fill=X让分隔线横向铺满窗口,padx和pady可以调整线与上下内容的间距,你可以根据视觉效果随意调整数值。
方案二:用Canvas组件实现更灵活的线条
如果你之后想给线条加特殊样式(比如虚线、粗细渐变),可以用Canvas画一条线:
# 用Canvas画分隔线 separator_canvas = Canvas(root, height=2, bg='darkslategray', highlightthickness=0) separator_canvas.create_line(0, 1, 1600, 1, fill="white", width=2) separator_canvas.pack(fill=X, padx=10, pady=10)
把这段代码替换方案一里的分隔线代码就行。Canvas的优势是能自定义线条的宽度、样式(比如加dash=(4,2)就能做虚线),甚至可以调整线条的精准位置。
两种方案都能完美实现你要的分隔效果,选哪种全看你后续有没有更复杂的样式需求~
内容的提问来源于stack exchange,提问作者Oli
相关产品推荐
相关产品推荐

