文本小部件填充屏幕的一半
Text widget to fill half of screen
我有一个 python tkinter
程序,我有两个需要并排放置的文本小部件。我怎样才能让这两个小部件正好占据 window 的一半,即 400 x 400 像素?
我的代码在这里
import tkinter
class MyApp:
def __init__(self):
self.root = tkinter.Tk()
self.root.title("App")
self.root.geometry("400x400")
self.root.update()
self.box1Text = tkinter.Text(self.root)
self.box1Text.pack(fill=tkinter.BOTH,side=tkinter.LEFT)
self.box2Text = tkinter.Text(self.root)
self.box2Text.pack(fill=tkinter.BOTH,side=tkinter.RIGHT)
App = MyApp()
默认情况下,文本小部件需要 80 个字符宽 x 24 个字符高。如果您不指定大小,tkinter 将尽最大努力确保小部件是该大小。如果它不能以请求的大小容纳所有小部件,它将开始缩小小部件,从最后创建的小部件开始。这就是为什么第一个小部件占据了 window 的全部(或大部分)——tkinter 尝试显示它,然后将剩余的空间留给下一个小部件。在这种情况下,剩余空间为零。
由于您给 window 一个明确的大小,您可以给文本小部件的宽度和高度为 1(一),然后让几何管理器扩展该小部件以填充额外的 space。您还需要告诉 pack 让小部件展开。所以,在widgets的定义中加上width=1, height=1
,然后在frame中打包widgets的时候加上expand=True
。
这是一个工作示例:
import tkinter
class MyApp:
def __init__(self):
self.root = tkinter.Tk()
self.root.title("App")
self.root.geometry("400x400")
self.root.update()
self.box1Text = tkinter.Text(self.root, width=1, height=1)
self.box1Text.pack(fill=tkinter.BOTH,side=tkinter.LEFT, expand=True)
self.box2Text = tkinter.Text(self.root, width=1, height=1)
self.box2Text.pack(fill=tkinter.BOTH,side=tkinter.RIGHT, expand=True)
App = MyApp()
App.root.mainloop()
我有一个 python tkinter
程序,我有两个需要并排放置的文本小部件。我怎样才能让这两个小部件正好占据 window 的一半,即 400 x 400 像素?
我的代码在这里
import tkinter
class MyApp:
def __init__(self):
self.root = tkinter.Tk()
self.root.title("App")
self.root.geometry("400x400")
self.root.update()
self.box1Text = tkinter.Text(self.root)
self.box1Text.pack(fill=tkinter.BOTH,side=tkinter.LEFT)
self.box2Text = tkinter.Text(self.root)
self.box2Text.pack(fill=tkinter.BOTH,side=tkinter.RIGHT)
App = MyApp()
默认情况下,文本小部件需要 80 个字符宽 x 24 个字符高。如果您不指定大小,tkinter 将尽最大努力确保小部件是该大小。如果它不能以请求的大小容纳所有小部件,它将开始缩小小部件,从最后创建的小部件开始。这就是为什么第一个小部件占据了 window 的全部(或大部分)——tkinter 尝试显示它,然后将剩余的空间留给下一个小部件。在这种情况下,剩余空间为零。
由于您给 window 一个明确的大小,您可以给文本小部件的宽度和高度为 1(一),然后让几何管理器扩展该小部件以填充额外的 space。您还需要告诉 pack 让小部件展开。所以,在widgets的定义中加上width=1, height=1
,然后在frame中打包widgets的时候加上expand=True
。
这是一个工作示例:
import tkinter
class MyApp:
def __init__(self):
self.root = tkinter.Tk()
self.root.title("App")
self.root.geometry("400x400")
self.root.update()
self.box1Text = tkinter.Text(self.root, width=1, height=1)
self.box1Text.pack(fill=tkinter.BOTH,side=tkinter.LEFT, expand=True)
self.box2Text = tkinter.Text(self.root, width=1, height=1)
self.box2Text.pack(fill=tkinter.BOTH,side=tkinter.RIGHT, expand=True)
App = MyApp()
App.root.mainloop()