【问题标题】:Tkinter Frame-How to fix Resulation Problem while adding LabelTkinter Frame-如何在添加标签时解决分辨率问题
【发布时间】:2021-09-24 08:31:08
【问题描述】:

我是 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()

【问题讨论】:

    标签: python tkinter tabs


    【解决方案1】:

    当您调用heading.pack() 时,tab1 将缩小到标签的大小。如果你不打电话给heading2.pack()tab2 的尺寸仍然是 600x500。所以笔记本客户区将保持在 600x500。

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

    你可以通过改变来避免上述尺寸调整:

    book.pack(pady=2)
    

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

    这样笔记本就会使用根窗口的所有可用空间。

    还要注意以下两行不是必须的,可以去掉:

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

    【讨论】:

    • 非常感谢兄弟!你是个天才。它真的奏效了。但我想要更多的东西。我想要一个像 Windows 7 那样的内容切换。我不需要像 win7 这样的 ui(这在 tkinter 中是不可能的)。我只想要win7的“更多细节”内容切换。这是截图Click Me
    • 你最好用你尝试过的任何东西提出另一个问题,并说明你遇到的问题。
    • 我在另一个主题上创建了一个。请帮助我(如果可以的话)。 Here is the question
    猜你喜欢
    • 1970-01-01
    • 2016-05-29
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多