Python 您可以组合两个tkinter tk小部件吗?
我正在创建一个包含两个Tk()小部件的应用程序。是否有可能将它们并排组合成一个更大的小部件,以使应用程序更易于使用Python 您可以组合两个tkinter tk小部件吗?,python,widget,tkinter,Python,Widget,Tkinter,我正在创建一个包含两个Tk()小部件的应用程序。是否有可能将它们并排组合成一个更大的小部件,以使应用程序更易于使用 from tkinter import * tk = Tk() canvas = Canvas(tk,width=400, height=150) canvas.pack() tk2 = Tk() canvas2 = Canvas(tk2,width=400, height=150) canvas2.pack() tk.mainloop(), tk2.mainloop()
from tkinter import *
tk = Tk()
canvas = Canvas(tk,width=400, height=150)
canvas.pack()
tk2 = Tk()
canvas2 = Canvas(tk2,width=400, height=150)
canvas2.pack()
tk.mainloop(), tk2.mainloop()
当我这样做,使基本窗口,我显然得到两个独立的窗口。可以合并成一个吗
我是一名初学者,正在使用python 3.3,不确定它是否是您想要的,但您可以在主Tk中创建两个框架
import tkinter as tk
class SubWindow(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
x = tk.Text(self)
x.pack()
class MainWindow(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self)
self.win1 = SubWindow(self)
self.win1.pack(side="left")
self.win2 = SubWindow(self)
self.win2.pack(side="right")
if __name__ == "__main__":
main = MainWindow()
main.mainloop()
编辑:
以下是在窗口执行以下操作时使框架调整大小的代码:
import tkinter as tk
class SubWindow(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
x = tk.Text(self)
x.pack(expand=1, fill='both')
class MainWindow(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self)
self.win1 = SubWindow(self)
self.win1.pack(side="left", expand=1, fill=tk.BOTH)
self.win2 = SubWindow(self)
self.win2.pack(side="right", expand=1, fill=tk.BOTH)
if __name__ == "__main__":
main = MainWindow()
main.mainloop()
同一个应用程序中不应该有两个
Tk
实例。如果需要多个窗口,则应创建Toplevel
的实例。如果您希望所有内容都在一个窗口中,您可以创建Frame
的实例,并根据需要(并排、自上而下、在网格中等)排列它们
虽然可以有多个
Tk
实例,但也有一些副作用会导致意外问题。Tk(tkinter的构建基础)被设计为具有单个根小部件。谢谢。这很有道理。