반응형
@ 30_가상화폐 금액표시 GUI 프로그램 만들기
- tkinter 사용 (tk-interface)
1. tkinter 사용해서 윈도우 창 생성, hello 쓰기
2. 글자 크기 바꾸기
3. 1초 마다 비트코인값 불러오기
1. tkinter 로 윈도우 생성, hello 쓰기
import tkinter
window = tkinter.Tk() # 윈도우 객체 생성
window.title('가상화폐 금액표시') # 윈도우 제목
window.geometry('400x200') # 윈도우 크기
window.resizable(False, False) # 크기변경 불가
label=tkinter.Label(window, text='hello') # 문자열 출력
label.pack()
window.mainloop() #GUI 계속 실행시키기 위해 루프돌림
결과.
2. 글자 크기 바꾸기
import tkinter
import tkinter.font #tkinter 를 임포트 하고 tkinter.font를 또 다시 임포트 하는 이유는?
window = tkinter.Tk()
window.title('가상화폐 금액표시')
window.geometry('400x200')
window.resizable(False, False)
font = tkinter.font.Font(size=30)
# label은 윈도우 안에서 텍스트를 표시하게 한다.
label = tkinter.Label(window, font=font, text='hello')
# 위치를 잡기 위해 pack() 사용, 디폴트는 top
label.pack()
window.mainloop()
[Q] tkinter와 tkinter.font 두 개를 임포트 해야하나?
[Q] tkinter.Label 에 fontsize 옵션은 없나?
결과.
3. 1초 마다 비트코인값 불러오기
- 교재에서는 1초마다 재귀함수를 호출했는데, 재귀함수는 찝찝해서 그 다음 예제에 나오는 쓰레드를 살짝 바꿨다.
- 쓰레드 : 비트코인 값 읽어서 label 의 텍스트로 넣어주기 후 1초 대기 반복
import tkinter
import tkinter.font
import time
import threading
import pyupbit
window = tkinter.Tk()
window.title('가상화폐 금액표시')
window.geometry('400x200')
window.resizable(0,0)
font = tkinter.font.Font(size = 30)
label = tkinter.Label(window, text = '', font = font)
label.pack()
secLabel = tkinter.Label(window, text = '')
secLabel.pack()
now_btc_price = 0
cnt = 0
def get_coin_1sec():
#전역변수를 함수 안에서 사용하기 위해 global을 붙인다. (전역과 지역이 따로 없이 무조건 지역인듯)
global now_btc_price
global cnt
while(True):
now_btc_price = pyupbit.get_current_price("KRW-BTC")
cnt = cnt + 1
#label의 text를 바꿔준다.
label.config(text=now_btc_price)
secLabel.config(text = str(cnt))
time.sleep(1)
# 1초마다 재귀함수 호출
#window.after(1000, get_coin_1sec)
#get_coin_1sec()
getCoinThread = threading.Thread(target=get_coin_1sec)
getCoinThread.daemon = True
getCoinThread.start()
window.mainloop()
결과.
반응형
최근댓글