向左堆叠不同字体的标签(Tkinter)

时间:2017-07-19 19:15:21

标签: python-2.7 tkinter

代码:

GUI.py:

from Emotions_Switch_Pages import *
from Emotions_Root import Main
from Emotions_0_Menu import menuFrame

menuFrame()
frame1()

Main()

Emotions_0_Menu.py:

from Emotions_Switch_Pages import frame1
from Emotions_Switch_Pages import frame2
from Emotions_1_Main import raise_frame
from Emotions_Root import root
from Tkinter import *



def menuFrame():

    menu = Frame(root)
    menu.grid(row = 0, column = 0)

    w = Button(menu, text="Main", command=lambda: raise_frame(frame1()))
    w.pack(side=TOP)

    x = Button(menu, text="Add/Delete Emotions", command=lambda: raise_frame(frame2()))
    x.pack(side=TOP)

    y = Button(menu, text="Edit Emotions")
    y.pack(side=TOP)

    z = Button(menu, text="Detail View")
    z.pack(side=TOP)

    return menu

Emotions_1_Main.py:

from Tkinter import *
from Emotions_Root import root


f1 = Frame(root)
f1.grid(row=0, column=1)
Ti1 = Label(f1, text="\t Title\t  ", font=("Arial", 44))
Ti1.pack()

Header1_1= Label(f1, text = "Add Emotion", font=("Arial", 20))
Header1_1.pack(side = LEFT)

Content1_1 = Label(f1, text = "some text")
Content1_1.pack(side = LEFT)



def MainPage():
    Ti1.config(text="\t Title\t ")
    Ti1.config(font=("Arial", 44))
    Header1_1.config(text="Add Emotion", font = ("Arial", 20))
    Content1_1.config(text = "some text")

def raise_frame(frame):
    frame.tkraise()

问题:

我希望Emotions_1_Main的布局如下所示:

enter image description here

但目前它看起来像这样: enter image description here

我理解我正在犯的错误,但我不知道如何解决它。我的目标是能够将标题置于顶部中心,在其下方有一个字体20的标题行,然后在下面的新行中有一些内容。我需要使用更多标签吗?如何更改Emotions_1_Main.py中的代码以实现此目的?

请注意,此处未包含其他不相关的代码页。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

多次使用side=LEFT将小部件打包在一起。

你想要一个普通的包()。使用锚点将小部件放在屏幕的一侧。

Header1_1= Label(f1, text = "Add Emotion", font=("Arial", 20))
Header1_1.pack(anchor='w')

Content1_1 = Label(f1, text = "some text")
Content1_1.pack(anchor='w')