Python 2.7 / Windows 7 / Tkinter:父项

时间:2017-05-17 07:10:40

标签: python tkinter windows-7

正如我从Tkinter参考中所理解的那样,在其父窗口上绘制了一个瞬态子窗口(居中?)。这适用于Linux,但不适用于Windows(7)。

你有什么建议为什么会这样吗?

我可以使用.geometry()方法手动居中窗口,但是当GUI计算某些值(比如一秒钟)时,会出现一个没有GUI的小窗口,然后移动到指定的位置即使我打电话给.withdraw方法。

非常感谢!

# -*- coding: utf-8 -*-

import Tkinter as tk
import ttk

class Parent(tk.Tk):

    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        self.txt = tk.Text(master=self)
        self.txt.pack()
        self.btn = ttk.Button(master=self, text='Show Child',
                              command=self.show)
        self.btn.pack()
        self.mainloop()

    def show(self, *args):
        Child(self)


class Child(tk.Toplevel):

    def __init__(self, master, *args, **kwargs):
        tk.Toplevel.__init__(self, *args, **kwargs)
        self.txt = tk.Text(master=self)
        self.txt.pack()

Parent()

1 个答案:

答案 0 :(得分:0)

好的,我通过以下方式解决了这个问题:

  • .withdraw()窗口
  • .geometry()设置为居中于父窗口
  • 进行一些计算以获得所需的用户界面
  • .update_idletasks()
  • 最后.deiconify()窗口。