tkinter類和方法中的標籤佈局
阿新 • • 發佈:2018-12-14
說明: 此處主要解決在類中各個方法不同標籤之間的統一佈局問題 在程式碼中有備註的步驟為重點和關鍵步驟 程式碼如下:
import tkinter as tk from PIL import Image,ImageTk class buju(): def __init__(self): d=0 def la(self): #frm=tk.Frame(root) frm.pack(side=tk.BOTTOM) tk.Label(root,text='厚德'.encode('utf-8').decode('utf-8'), font=('Arial', 15)).pack() a=tk.Label(frm_Left,text='載物'.encode('utf-8').decode('utf-8'), font=('Arial', 15)).pack() #放在相應的frm_Left佈局內 b=tk.Label(frm_Left, text='博愛'.encode('utf-8').decode('utf-8'), font=('Arial', 15)).pack() frm_Left.pack(side=tk.LEFT) #並且結束後一定要將這個佈局模組pack下 tk.Label(frm_R, text='敬業'.encode('utf-8').decode('utf-8'), font=('Arial', 15)).pack() tk.Label(frm_R, text='樂群'.encode('utf-8').decode('utf-8'), font=('Arial', 15)).pack() img = r"F:\PythonFiles\PycharmFile\pictures\ex13RandomNameWithPic\01.png" photo = Image.open(img) w, h = photo.size resizePhoto = self.pic_resize(w, h, 153, 153, photo) tkPhoto = ImageTk.PhotoImage(resizePhoto) labelImg = tk.Label(frm_R, image=tkPhoto) labelImg.pack() labelImg.config(image=tkPhoto) # 以下兩句程式碼非常重要,是保證圖在函式中可以被載入的途徑 labelImg.image = tkPhoto labelImg.pack() frm_R.pack(side=tk.RIGHT) def pic_resize(self, w, h, w_box, h_box, pil_image): #圖形縮放 f1 = 1.0 * w_box / w # 1.0 forces float division in Python2 f2 = 1.0 * h_box / h factor = min([f1, f2]) width = int(w * factor) height = int(h * factor) return pil_image.resize((width, height), Image.ANTIALIAS) if __name__ == '__main__': root=tk.Tk() root.title('隨機') root.geometry('300x200') frm=tk.Frame(root) #窗體佈局 frm_Left=tk.Frame(frm) #窗體佈局的各個小模組均可以在主函式裡寫,然後再類裡直接呼叫就行 frm_R=tk.Frame(frm) t=buju() t.la() root.mainloop()