파이썬에서 GUI 프로그래밍을 하기 위해선 PyQt 혹은 Tkinter을 이용하여 구현할 수 있다. 하지만 PyQt는 Qt를 별도로 설치하여야 하는 불편함이 있다. 라즈베리파이에서 간단하게 구현하기 위해서 Tkinter을 선택했다.


우분투에서 패키지 설치

라즈베리파이에는 기본적으로 깔려있는 듯하지만 우분투에서는 기본적으로 깔려있지 않았다. 설치하는 방법은 다음과 같다. 파이썬2와 파이썬3를 각각 설치해야 한다.

1
2
3
sudo apt-get install python-tk
or
sudo apt-get install python3-tk


파이썬에서 불러오기

이후 파이썬에서 다음과 같이 호출하면 된다.

1
import tkinter


윈도우 설정

1
2
3
4
5
6
7
8
9
10
11
import tkinter

window = tkinter.Tk()

window.title("Control Panel")
window.geometry("800x600+0+0")
# Width x Height + X Pos + Y Pos
window.resizable(False,False)
# 상하 크기 조절, 좌우 크기 조절

window.mainloop()


레이블 생성

1
2
label = tkinter.Label(window, text="Hello, World!")
label.pack() # 레이아웃이 실질적으로 생성되도록 함


버튼 생성

1
2
btn1 = tkinter.Button(window, text="Click")
btn1.pack()


버튼 이벤트

위와같이 레이블과 버튼을 손쉽게 생성이 가능하다. 레이아웃을 설정하는 방법에 대해선 알아보는 것은 차후에 하도록하고… 버튼에 이벤트를 설정하는 방법은 다음과 같다.

btn2를 클릭하면 label의 텍스트가 ‘Hello, World!’에서, ‘btn2, Clicked!’로 변경되도록 하는 소스코드다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import tkinter

window = tkinter.Tk()

window.title("Control Panel")
window.geometry("800x600+0+0")
window.resizable(False,False)

label = tkinter.Label(window, text="Hello, World!")
label.pack()

def btn2_click_event():
    label.cinfigure(text="btn2, Clicked!")

btn1 = tkinter.Button(window, text="Click")
btn1.pack()

btn2 = tkinter.Button(window, text="Click", command=btn2_click_event)
btn2.pack()

window.mainloop()

함수는 레이블이 생성된 다음에 만들어 주어야 레이블을 탐색할 수 있으므로 저 위치에 작성되었다. 끝.

WRITTEN BY

배진오

하고싶은 건 다 하면서 사는게 목표
im@baejino.com

comments powered by Disqus