我需要在包含标题的程序窗口顶部添加一个黑条,例如,请查看此网页的顶部-有一个标题,这基本上是我希望每个窗口使用的标题为我的tkinter程序。无论如何,我可以为我创建的每个新窗口设置默认值吗?还是我可以创建一种默认格式,该格式可以自动分配给每个窗口/页面?
我尝试使用标签像这样在屏幕上伸展
label1 = tkinter.Label(window, text="Title ",bg="black",fg="white")
label1.grid(row=0,column=0)
我还尝试了其他方法,但是问题在于它调整了网格的列大小,这意味着我只能有一列小部件。
仅供参考,我14岁时仍在学习基础知识,因此我使用一种简单的方式使用tkinter。
这是我使用tkinter的基本方式示例,请耐心等待我哈哈。
#How i create main window.
window1 = tkinter.Tk()
#Insert window1 configurations(e.g, title, background, icon)
#How i create new windows
window2 = tkinter.TopLevel()
#Insert window2 configurations(e.g, title, background, icon)
window2.withdraw()
#How i open a new window
def openwindow():
window1.withdraw
window2.update
window2.deiconify
现在我的问题在此代码内:
#New page
def SongPage():
MainMenu.withdraw()
#Newpage
def OptionsPage():
MainMenu.withdraw()
#MainMenu window.
MainMenu = tkinter.Tk()
MainMenu.geometry("200x150")
MainMenu.configure(background="grey")
MainMenu.title("Title")
#This is the header.(It has spaces to make it spread across screen)
MenuTitle = tkinter.Label(MainMenu, text="Header ",bg="black",
fg="white",font=("Times",20,"bold"))
#This is a small subheader.(It has spaces to make it spread across screen)
MenuSub = tkinter.Label(MainMenu, text=" Subheading
",bg="grey34", fg="white",font=("Times",10,"bold"))
#These "space" labels are to just space things out.
space3 = tkinter.Label(MainMenu, text="",bg="grey", fg="white",
font=("Times",20,"bold"))
space4 = tkinter.Label(MainMenu, text="",bg="grey", fg="white",
font=("Times",20,"bold"))
#These are the two buttons i'd like to be on screen under headers.
SongButton = tkinter.Button(MainMenu, text="Songs", bg="grey",fg="black",
font=("Times",12),command=SongPage)
OptionsButton = tkinter.Button(MainMenu, text="Options", bg="grey",fg="black",
font=("Times",12),command=OptionsPage)
#This is applying the widgets to the window.
MenuTitle.grid(row=0,column=0)
MenuSub.grid(row=1,column=0)
SongButton.grid(row=3,column=0)
OptionsButton.grid(row=3,column=1)
以下是其当前屏幕截图: https://pasteboard.co/HZKnIR9.png
这是我想要的样子: https://pasteboard.co/HZKo1Ru.png
答案 0 :(得分:0)
您可以在对.grid()的调用中使用columnspan关键字参数。然后,您可以使用sticky关键字来确保它触及列的左右边缘。例如:
{{1}}
将使您的标签在第0列和第1列上延伸。如果窗口只有两列,则黑条将始终一直延伸。如果您有多于两列,则需要更大的列跨度。
Tkinter将首先通过使用其他窗口小部件的大小来计算所有列的宽度。如果黑条太大,需要更多空间,则TkInter将不得不拉伸其他列宽。但这可能不是必需的,黑条将一直很好地贯穿整个窗口,这就是您想要的。
在此处查看文档:{{3}}