Tkinter Frame-添加标签时如何解决分辨率问题

Tkinter Frame-How to fix Resulation Problem while adding Label

我是 Python 的新手。我正在学习使用 tkinter pkg 在 python 中创建选项卡。我已成功创建 2 个选项卡,但无法在两个选项卡中显示文本(标签)。当我在一个选项卡 (heading.pack()) 中仅显示 1 个文本时,它运行良好。但是当我在选项卡 2 (heading2.pack()) 中显示另一个文本时,框架 Resulation Broked。我还在 Frame 选项中设置了宽度和高度。我想修复resulation(在添加第二个文本resulation之前)。这是之前和之后的截图

Before adding 2nd Text
After adding 2nd Text

这是代码:

from tkinter import *
from tkinter import ttk

root=Tk()
root.title('Tab Widget')
root.geometry('600x400')

book=ttk.Notebook(root)
book.pack(pady=2)

tab1=Frame(book,width=600,height=500,bg='white')
tab2=Frame(book,width=600,height=500,bg='white')

tab1.pack(fill='both',expand=1)
tab2.pack(fill='both',expand=1)

book.add(tab1,text='Tab 1')
book.add(tab2,text='Tab 2')

heading=Label(tab1,text='This is Tab 1',font='arial 20 bold',bg='white')
heading2=Label(tab2,text='This is Tab 2',font='arial 20 bold',bg='white')

heading.pack() #Show Text in Tab 1
heading2.pack() #Show Text in Tab 2

root.mainloop()

当你调用heading.pack()时,tab1会缩小到标签的大小。如果您不调用 heading2.pack()tab2 的大小仍为 600x500。因此笔记本客户区将保持在 600x500。

然而,当您调用 heading2.pack() 时,tab2 也会缩小到标签的大小,这会导致笔记本客户区也缩小。

您可以通过更改来避免上述尺寸调整:

book.pack(pady=2)

book.pack(pady=2, fill='both', expand=1)

以便该笔记本将使用根 window 的所有可用 space。

另请注意,以下两行不是必需的,可以删除:

tab1.pack(fill='both',expand=1)
tab2.pack(fill='both',expand=1)