如何使用网格使标题成为窗口的中心?

时间:2018-03-30 16:25:49

标签: python python-2.7 tkinter

这是我的代码,我仍然试图让它显示在页面顶部的中间。

    TR= Tk()
    TR.geometry('600x600')

    TR.title('BEGINNER')

    title = Label(TR, text = 'CENTER', anchor = CENTER, justify = CENTER)

    title.grid(row = 0, columnspan = 20, sticky = N+S+E+W)

1 个答案:

答案 0 :(得分:0)

对于你的问题,我们有点不清楚。

您无法准确居中实际窗口标题,但您可以将标签居中。

看看下面的代码。

from tkinter import *

TR= Tk()
TR.geometry('300x100')

TR.title('BEGINNER')
TR.columnconfigure(0, weight=1)

Label(TR, text = 'CENTER').grid(row = 0, sticky = "ew")

TR.mainloop()

enter image description here

如果您想要更改实际窗口标题的位置,还有其他选项可能有效。

请注意,此功能是从Tkinter : How to center the window title

复制的,现有Q / A.
from tkinter import *

TR= Tk()
TR.geometry('300x100')

TR.title('BEGINNER')
TR.columnconfigure(0, weight=1)

title = Label(TR, text = 'CENTER')
title.grid(row = 0, sticky = "ew")

def configure(event):
    w = int(TR.winfo_width() / 3.5)
    s = 'BEGINNER'.rjust(w//2)
    TR.title(s)

TR.bind("<Configure>", configure)

TR.mainloop()

从下图中可以看出,它不是100%的中心,在调整大小时会稍微移动一下。所以这可能不是你想要的。通常,没有现成的方法可以用来准确地将标题放在窗口标题栏的中心。

enter image description here

还有一个我能想到的选择...... 您可以禁用/隐藏标题栏并创建自己的标题栏。 它看起来不太可能,但你可以在其上设置一个标签作为标题栏。