티스토리 뷰
Tkinter의 레이아웃 관리
절대 위치 지정
대부분의 경우 프로그래머는 레이아웃 관리자를 사용해야합니다. 절대 위치 지정을 사용할 수있는 몇 가지 상황이 있습니다. 절대 위치 지정에서 프로그래머는 각 위젯의 위치와 크기를 픽셀 단위로 지정합니다. 창 크기를 조정하면 위젯의 크기와 위치가 변경되지 않습니다. 응용 프로그램은 다양한 플랫폼에서 다르게 보이며 Linux에서는 정상적으로 보이지만 Mac OS에서는 잘 보이지 않을 수 있습니다. 응용 프로그램에서 글꼴을 변경하면 레이아웃이 손상 될 수 있습니다. 응용 프로그램을 다른 언어로 번역하는 경우 레이아웃을 다시해야합니다.
from PIL import Image, ImageTk from tkinter import Tk, BOTH from tkinter.ttk import Frame, Label, Style class Example(Frame): def __init__(self): super().__init__() self.initUI() def initUI(self): self.master.title("Absolute positioning") self.pack(fill=BOTH, expand=1) Style().configure("TFrame", background="#333") bard = Image.open("bardejov.jpg") bardejov = ImageTk.PhotoImage(bard) label1 = Label(self, image=bardejov) label1.image = bardejov label1.place(x=20, y=20) rot = Image.open("rotunda.jpg") rotunda = ImageTk.PhotoImage(rot) label2 = Label(self, image=rotunda) label2.image = rotunda label2.place(x=40, y=160) minc = Image.open("mincol.jpg") mincol = ImageTk.PhotoImage(minc) label3 = Label(self, image=mincol) label3.image = mincol label3.place(x=170, y=50) def main(): root = Tk() root.geometry("300x280+300+300") app = Example() root.mainloop() if __name__ == '__main__': main()
이 예에서는 절대 위치 지정을 사용하여 세 개의 이미지를 배치합니다. 작업 공간 관리자를 사용합니다.
from PIL import Image, ImageTk
우리는 Python Imaging Library (PIL) 모듈에서 Image와 ImageTk를 사용합니다.
style = Style() style.configure("TFrame", background="#333")
스타일을 사용하여 어두운 회색 배경으로 프레임을 구성합니다.
bard = Image.open("bardejov.jpg") bardejov = ImageTk.PhotoImage(bard)
현재 작업 디렉토리의 이미지에서 이미지 객체와 사진 이미지 객체를 만듭니다.
label1 = Label(self, image=bardejov)
우리는 이미지가있는 레이블을 만듭니다. 레이블에는 텍스트 또는 이미지가 포함될 수 있습니다.
label1.image = bardejov
이미지 참조를 유지해야합니다.
label1.place(x=20, y=20)
레이블은 x = 20 및 y = 20 좌표에서 프레임에 배치됩니다.
댓글