Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在tkinter python 3.7中打开与原始窗口功能相同的新窗口?_Python_Python 3.x_Tkinter_Python 3.7 - Fatal编程技术网

如何在tkinter python 3.7中打开与原始窗口功能相同的新窗口?

如何在tkinter python 3.7中打开与原始窗口功能相同的新窗口?,python,python-3.x,tkinter,python-3.7,Python,Python 3.x,Tkinter,Python 3.7,我正在tkinter python v3.7中编写代码,我想打开一个新窗口,它具有与原始窗口相同的功能。我该怎么做 在搜索解决方案时,我遇到了命名Toplevel的函数,它创建了新的tkinter窗口。但这个新窗口是全新的,它没有原始窗口中提供的功能(按钮、几何尺寸) from tkinter import * class TextPad: def new_window(self): top = Toplevel() def __init__(self, ma

我正在tkinter python v3.7中编写代码,我想打开一个新窗口,它具有与原始窗口相同的功能。我该怎么做

在搜索解决方案时,我遇到了命名Toplevel的函数,它创建了新的tkinter窗口。但这个新窗口是全新的,它没有原始窗口中提供的功能(按钮、几何尺寸)

from tkinter import *
class TextPad:

    def new_window(self):
        top = Toplevel()

    def __init__(self, master):
        master.title('Text Pad')
        master.geometry('400x400')

    self.button = Button(master, text='Press', 
                             command=self.new_window)
    self.button.pack()

root = Tk()
t = TextPad(root)
root.mainloop()
我的原始窗口的几何尺寸为“400x400”,并且有“按钮”,我想打开一个具有此功能的新窗口。

我假设您同时需要两个(或更多)窗口

如果需要相同的窗口,请再次使用
TextPad()

但是这次使用
Toplevel()
而不是
Tk()

不要运行第二个
mainloop()


如果您想用新窗口替换第一个窗口(只有一个窗口),则必须销毁旧窗口,然后使用
TextPad()
Tk()
mainloop()创建新窗口

但是它需要使用
self.master
而不是
master
来访问方法
new\u窗口中的
master

from tkinter import *

class TextPad:

    def new_window(self):
        self.master.destroy()

        root = Tk()
        t = TextPad(root)
        root.mainloop()

    def __init__(self, master):
        self.master = master
        self.master.title('Text Pad')
        self.master.geometry('400x400')

        self.button = Button(self.master, text='Press', 
                             command=self.new_window)
        self.button.pack()

root = Tk()
t = TextPad(root)
root.mainloop()
TextPad(Toplevel())
。如果您想要相同的窗口,则必须再次使用
TextPad()
,但这样就可以使用
Toplevel()
而不是
Tk()
from tkinter import *

class TextPad:

    def new_window(self):
        self.master.destroy()

        root = Tk()
        t = TextPad(root)
        root.mainloop()

    def __init__(self, master):
        self.master = master
        self.master.title('Text Pad')
        self.master.geometry('400x400')

        self.button = Button(self.master, text='Press', 
                             command=self.new_window)
        self.button.pack()

root = Tk()
t = TextPad(root)
root.mainloop()