1. 程式人生 > >tkinter Label標籤相關

tkinter Label標籤相關

建立標籤
label = ttk.Label(parent, text='Full name:')


通過建立StringVar物件,可以將需要顯示的文字內容設定為變數物件
label6 = ttk.Label(frame5)
txt = StringVar()
label6["textvariable"] = txt
txt.set("文字變數")


加入圖片
建立PhotoImage物件,指定image屬性為該物件。不能識別jpg格式,支援gif格式
label7 = ttk.Label(root)
image_p = PhotoImage(file="python.gif")
label7["image"] = image_p


需同時顯示圖片和文字時,需設定compound屬性,可指定值為
image,text,center,top,left,right
label7 = ttk.Label(root)
image_p = PhotoImage(file="python.gif")
label7["image"] = image_p
label7["text"] = "PYTHON"
label7["compound"] = "left"  # image,text,center,top,left,right
label7.pack(padx=10, pady=10)


如果預設元件區域遠遠大於元件大小,可以設定anchor屬性,設定元件在區域內的擺放位置,可選引數
"n" (north, or top edge), "ne", (north-east, or top right corner), "e", "se", "s", "sw", "w", "nw" or "center"


文字內容的換行,可以通過兩種方式:
1.在文字中輸入\n
label_2["text"] = "這是多行\n文字\n這是另一行"
2.設定wraplength屬性,單位為畫素
label_3 = ttk.Label(frame, wraplength=50)


針對多行文字的對齊,可設定justify屬性,可選值"left", "center" or "right"

#!/usr/bin/env python3
# coding=utf-8

from tkinter import *
from tkinter import ttk

__author__ = 'Administrator'

root = Tk()
frame = ttk.Frame(root, padding=10, relief="solid", borderwidth=2)
frame.grid(padx=10, pady=10)
label_1 = ttk.Label(frame, relief="solid", borderwidth=1, justify="left")
label_2 = ttk.Label(frame, relief="solid", borderwidth=1, justify="center")
label_3 = ttk.Label(frame, relief="solid", borderwidth=1, justify="right")
label_4 = ttk.Label(frame, relief="solid", borderwidth=1, wraplength="100")
label_5 = ttk.Label(frame, relief="solid", borderwidth=1)

label_1["text"] = "這是多行\n文字\n這是另一行"
label_2["text"] = "這是多行\n文字\n這是另一行"
label_3["text"] = "這是多行\n文字\n這是另一行"
label_4["text"] = "這是一行長文字,根據長度自動換行這是一行長文字,根據長度自動換行"

label_5["text"] = "PYTHON"
image = PhotoImage(file="python.gif")
label_5["image"] = image
label_5["compound"] = "left"

label_1.grid(row=0, column=0)
label_2.grid(row=0, column=1)
label_3.grid(row=0, column=2)
label_4.grid(row=1, column=0, columnspan=3)
label_5.grid(row=2, column=0, columnspan=3)

for child in frame.winfo_children():
    child.grid(padx=3, pady=3)

root.mainloop()