상세 컨텐츠

본문 제목

Python GUI 프로그래밍 tkinter 버튼 레이블 텍스트 엔트리 리스트박스 체크박스 라디오버튼

Programming

by 신농해태 2021. 9. 14. 14:53

본문

반응형

tkinter : kinter, t-kinter, tk-inter 등으로 불리며, python을 설치할때 함께 설치됨

 

1. 기본 윈도우 창 코딩 및 실행 

새파일을 만들어서 아래 코딩을 복사 붙여넣기 한후, 

from tkinter import *

 

root = Tk()

root.title("Haetae GUI")

root.geometry("640x480")

#root.geometry("640x480+100+300")

root.resizable(FalseFalse)

 

root.mainloop()

 

확장자 py로 하여 저장한후, 실행하면

윈도우 GUI 기본 창이 실행됨.

 

2. 버튼 추가 코딩 및 실행

새파일을 만들어서 아래 코딩을 복사 붙여넣기 한후, 

from tkinter import *

 

root = Tk()

root.title("Haetae GUI")

 

btn1 = Button(roottext="버튼1")

btn1.pack()

 

btn2 = Button(rootpadx = 5pady = 10text="버튼2")

btn2.pack()

 

btn3 = Button(rootpadx = 10pady = 5text="버튼3")

btn3.pack()

 

btn4 = Button(rootwidth = 10height = 3text="버튼4")

btn4.pack()

 

btn5 = Button(rootfg = "red"bg = "yellow"text="버튼5")

btn5.pack()

 

photo = PhotoImage(file="img.png")  # 미리 작은 이미지 만들어서 img.png로 저장 

btn6 = Button(rootimage=photo)

btn6.pack()

 

def btncmd():

    print("버튼이 클릭됨")

 

btn7 = Button(roottext="동작 버튼"command=btncmd)

btn7.pack()

 

root.mainloop()

 

확장자 py로 하여 저장한후, 실행하면

위의 7가지 버튼이 생성된것 확인할수 있습니다. 

 

3. 레이블

새파일을 만들어서 아래 코딩을 복사 붙여넣기 한후, 

from tkinter import *

 

root = Tk()

root.title("Haetae GUI")

root.geometry("640x480")

 

label1 = Label(roottext = "안녕")

label1.pack()

 

photo = PhotoImage(file="gui_basic/img.png")

label2 = Label(rootimage=photo)

label2.pack()

 

def change():

    label1.config(text="또 만나요")

 

    global photo2

    photo2 = PhotoImage(file="gui_basic/img2.png")

    label2.config(image=photo2)

 

btn = Button(roottext="클릭"command=change)

btn.pack()

 

root.mainloop()

 

확장자 py로 하여 저장한후, 실행하면

레이블이 생성된것을 확인할수 있습니다. 

 

4. 텍스트 와 엔트리

from tkinter import *

 

root = Tk()

root.title("Haetae GUI")

root.geometry("640x480")

 

txt = Text(rootwidth=30height=5)

txt.pack()

txt.insert(END,"글자를 입력")

 

e = Entry(root,width=30)

e.pack()

e.insert(0,"한줄만 입력")

 

def btncmd():

    print(txt.get("1.0"END))

    print(e.get())

 

btn = Button(roottext="클릭"command=btncmd)

btn.pack()

 

root.mainloop()

 

실행하면

여러줄 입력이 가능한 Text와

한줄 입력이 가능한 Entry를 확인할 수 있습니다. 

 

5. 리스트 박스

from tkinter import *

 

root = Tk()

root.title("Haetae GUI")

root.geometry("640x480")

 

listbox = Listbox(rootselectmode="extended"height=0)

listbox.insert(0"바나나")

listbox.insert(1"딸기")

listbox.insert(2"수박")

listbox.insert(END"멜론")

listbox.insert(END"포도")

listbox.pack()

 

def btncmd():

    # listbox.delete(END)

    # listbox.delete(0)

    # print("리스트에는", listbox.size(), "개가 있음")

    # print("1번에서 3번까지 리스트 : ", listbox.get(0,2))

    print("선택한 리스트 : "listbox.curselection())

 

btn = Button(roottext="클릭"command=btncmd)

btn.pack()

 

root.mainloop()

 

6. 체크박스

from tkinter import *

 

root = Tk()

root.title("Haetae GUI")

root.geometry("640x480")

 

chkvar = IntVar()

chkbox = Checkbutton(roottext="오늘 할일"variable=chkvar)

#chkbox.select()

#chkbox.deselect()

chkbox.pack()

 

def btncmd():

    print(chkvar.get())

 

btn = Button(roottext="클릭"command=btncmd)

btn.pack()

 

root.mainloop()

 

7. 라디오버튼

from tkinter import *

 

root = Tk()

root.title("Haetae GUI")

root.geometry("640x480")

 

Label(roottext="메뉴판").pack()

Label(roottext="메인").pack()

food_var = IntVar()

btn_burger1 = Radiobutton(roottext="떡볶이"value=1variable=food_var)

btn_burger1.select()

btn_burger2 = Radiobutton(roottext="오뎅"value=2variable=food_var)

btn_burger3 = Radiobutton(roottext="순대"value=3variable=food_var)

 

btn_burger1.pack()

btn_burger2.pack()

btn_burger3.pack()

 

Label(roottext="음료수").pack()

drink_var = StringVar()

btn_drink1 = Radiobutton(roottext="우유"value="우유"variable=drink_var)

btn_drink1.select()

btn_drink2 = Radiobutton(roottext="콜라"value="콜라",variable=drink_var)

 

btn_drink1.pack()

btn_drink2.pack()

 

def btncmd():

    print(food_var.get())

    print(drink_var.get())

 

btn = Button(roottext="주문"command=btncmd)

btn.pack()

 

root.mainloop()

728x90
LIST

관련글 더보기

댓글 영역