Tkinter网格不起作用

时间:2018-07-21 06:48:44

标签: python tkinter

我想创建一个窗口,所有内容都居中,但我不知道该怎么办,请帮助我。

def about_window():
    win_about = tk.Toplevel(win)
    win_about.geometry("340x500")
    win_about.title("About Us")
    win_about.resizable(0,0)
    win_about.iconbitmap(r'C:/Users/810810/Desktop/python/eslogo.ico')
    frame = tk.Frame(win_about)
    frame.grid(row=0, column=2)

    img_png = tk.PhotoImage(file = 'est.gif')
    label = tk.Label(frame, image = img_png)
    label.img_png = img_png
    label.grid(row=0, column=1)

    Message = 'Version: 1.0'
    mess = tk.Label(frame, text=Message)
    mess.grid(row=1, column=0)

2 个答案:

答案 0 :(得分:1)

.Split(new[] { ",", "+" }, StringSplitOptions.RemoveEmptyEntries);也有很多问题,我更喜欢使用tkinter grid

下面,我将您的代码编辑为使用tkinter place而不是placegrid指的是您要移动的对象的锚点,anchor指的是相对x位置占其所在框架的百分比(relx指的是框架的一半), .5指的是帧中从0-1开始的y位置。

rely

答案 1 :(得分:0)

这应该可以工作(它在python 2.7上适用于我的ubuntu 16)

它打开2个窗口,是想要的还是不需要的?

它在中心显示一个图像,在下面显示您的文本。

它通过添加“”字符串来工作,就像neeraj nair建议的那样。 (他建议放置任何东西来调整布局。)

(@ Elvis Fan:我知道您使用Windows,但它也适用于Windows。)

import Tkinter as tk
def about_window():
    win_about = tk.Toplevel()
    win_about.geometry("340x500")
    win_about.title("About Us")
    win_about.resizable(0,0)
    frame = tk.Frame(win_about)
    frame.grid(row=0, column=2)
    for i in range(0,12):
        Message = " "
        mess = tk.Label(frame, text=Message)
        mess.grid(row=i, column=0)
    img_png = tk.PhotoImage(file = 'gbsnode.png')
    label = tk.Label(frame, image = img_png)
    label.img_png = img_png
    label.grid(row=21, column=2)
    Message = '                                '
    mess = tk.Label(frame, text=Message)
    mess.grid(row=23, column=1)
    Message = 'Version 1'
    mess = tk.Label(frame, text=Message)
    mess.grid(row=24, column=2)
    frame.mainloop()
about_window()
while True:
    pass