Python gui_basic 독학: 3~5 Chapter

2022. 7. 19. 19:02Python/Tkinter GUI

Python gui_basic 강의 영상의 분량이 많아서 글을 올릴 때 Chapter의 수가 매번 다를 거 같아요!

 

Chapter 3: label.py

요번 Chapter는 label 만들기.

매번 Chapter에서 Chapter 1: Create_frame.py의 틀을 사용하여 제작.

 

 

label1 = label(root, text="안녕하세요") 라는 명령어로 "안녕하세요"라는 label 만듦.

label1.pack()

 

photo = PhotoImage(file="gui_basic/1.png") photo라는 변수에 Photoimage 명령어를 사용하여 특정 라이블러리 속 png로 경로 설정.

label2 = label(root, image=photo) 새로운 label2를 만들어 image를 전에 만든 photo 변수로 설정.

label2.pack()

 

def change(): 이 change 함수는 밑에 버튼을 눌렀을 때 작동되는 함수, 버튼을 누를 경우 글자와 이미지가 바뀜.

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

 

   global photo2

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

   label2.config(image=photo2)

 

btn = Button(root, text="클릭", command=change) "클릭"이라는 버튼을 만들어준 후 cmd change를 작성해줌

btn.pack()

 

root.mainloop()

Visual stuido code에 작성한 명령문
Visual stuido code에 작성한 명령문을 실행한 결과
첫 번째 결과의 버튼을 클릭하여 이미지와 텍스트가 바뀐 모습

Chapter 3: label.py 는 label을 만들고 응용하여 작동까지 하는 방법을 배움.


Chapter 4: text_entry.py

이번 Chapter는 텍스트&엔트리 즉 GUI 사용자가 직접 텍스트를 작성할 수 있는 틀을 만들어 줄 것이다.

 

txt = Text(root, width=30, height=5) txt라는 변수에 Text 틀을 만들고 가로와 높이 길이 값을 지정해주었다.

txt.pack()

txt.insert(END, "글자를 입력하세요:") 라는 명령어로 "글자를 입력하세요:"라는 말 끝에 입력을 받을 수 있게 하였다.

 

e = Entry(root, width=30) 높이 값을 지정하지 않아 한 줄의 높이만 자동으로 지정 됨.

e.pack()

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

 

def btncmd(): 버튼 cmd로 텍스트를 작성하고 밑에 버튼을 누르면 작동하는 cmd

   #내용 출력 cmd

   print(txt.get("1.0", END)) #1은 첫 번째 라인, 0은 0 번째 column 위치

   print(e.get())

 

   #내용 삭제 cmd

   txt.delete("1.0, END)

   e.delete(0, END)

 

btn = Button(root, text="클릭", command=btncmd) "클릭" 버튼을 만들어줌.

btn.pack()

 

root.mainloop()

Visual stuido code에 작성한 명령문
Visual stuido code에 작성한 명령문을 실행한 결과
텍스트를 입력하고 버튼을 클릭하니 Python 터미널에 나타난 모습.

Chapter 4: text_entry.py 에서는 텍스트&엔트리를 만드는 법에 대하여 배웠다.

텍스트를 입력하고 클릭을 누르니 "글자를 입력하세요.:"라는 글자도 같이 출력이 되었고 내용 삭제가 됐을 때 이 글자도 함께 삭제가 되어버린다. 이 부분에 대해서는 자세히 공부해봐야겠다.


Chapter 5: listbox.py

이번 Chapter는 여러 개의 리스트가 있고 그 리스트 중 한 개를 선택할 수 있는 즉 listbox를 만들어 볼 것이다.

 

listbox = Listbox(root, selectmode="extended", height=0)

#selectmode 같은 경우는 extended는 복수 선택, single은 단수 선택이 가능함.

#여기서 height 같은 경우 0은 모두, 3은 최대 3개 추가로 선택 가능함. (ex: 다음 항목중 제일 좋아하는 것 2개를 고르세요.)

listbox.insert(0, "사과") 이 명령어는 리스트 박스를 만드는 명렁어, 괄호 안에 숫자는 몇 번째 위치에 둘 것인가 이다.
listbox.insert(1, "딸기")
listbox.insert(2, "바나나")
listbox.insert(END, "수박") END는 항상 맨 끝에 위치함.
listbox.insert(3, "포도")
listbox.pack()

성공적인 listbox 모습

 

def btncmd(): 버튼을 클릭할 경우 작동되는 함수
    # list를 삭제할 수 있는 명령어
    #listbox.delete(0) # END = 맨 뒤에 항목을 삭제, 0은 맨 앞 부터 삭제

    # listbox 속 리스트 갯수 확인
    #print("리스트에는", listbox.size(), "개가 있어요.")

    # 항목 확인 (시작 idx, 끝 idx)
    #print("1번째부터 3번째까지의 항목 : ", listbox.get(0, 2))

    # 선택된 항목 확인 (위치로 반환 ex 0은 맨 첫 번째)
    print("선택된 항목: ", listbox.curselection())

btn = Button(root, text="클릭", command=btncmd) "클릭" 버튼을 만듦.
btn.pack()

root.mainloop()

Visual stuido code에 작성한 명령문
Listbox 속 리스트를 선택 후 클릭 버튼을 누르니 Python 터미널에 출력 된 모습

이렇게 Python gui_basic 독학: 3~5 Chapter 를 마무리 함.

'Python > Tkinter GUI' 카테고리의 다른 글

Python gui_basic 독학: 6~10 Chapter  (2) 2022.07.19
Python gui_basic 독학: 1~2 Chapter  (0) 2022.07.17