파이썬 팁

파이썬 GUI 표준라이브러리 TKinter 재시작 버튼 만들기

gomming 2020. 9. 26. 00:07

파이썬으로 스크립트를 만들어서 효율적으로 업무하시는 분들이 많이 있으실텐데요

저도 간혹 간단한 스크립트를 만들어서 업무에 활용하곤 해요 ! .!

 

처음엔 그걸 언제 만들어 ~~ 하다가도 만들어 놓으면,

"이거 없었으면 어쩔뻔했어 ... " 한답니다.

묵묵히 돌고 있는 스크립트를 보면서 감사한 마음이 들었어요

하지만 스크립트가 여러게 있거나 무언가 인풋을 받아야 한다면?

메뉴에서 골라야하는 경우의 수가 있다면?

스크립트 한번에 해결하기 어려울 수 있겠죠?!

 

그럴 때 바로 이용하라고

Python 에는 표준라이브러리로 TKinter라는 걸 제공해요

아주 단순하고 빠르게 작동하는 UI를 만들어 볼 수 있답니다.

아마 검색하시면 계산기 만드는 예제가 많이 나올 텐데요

독학으로 인터넷 보면서해도 금방 간단한 UI를 만들어 볼 수 있어요!

 

다른 좋은 UI라이브러리도 물론 많이 있죠 kivy라던가 pyqt 같은...

 

 

하지만 Tkinter는 한 번 써보는데 많은 노력이 들지 않고 굉장히 직관적인 편이랍니다.

예쁘게 만들어서 상용화하는게 아니라면 무리없이 쓰실 수 있을 거 같아요

(사실 상용화하더라도 나쁠 건 없을 거 같아요. 모든건 프로그래머의 노력)

 

만들다보면 앱을 재시작 또는 리셋해야 하는 경우가 생기죠

from tkinter import *

root = Tk()
 
def restart():
    global root
    global lbl
    global txt
    global btn

    try:
        if('normal' == root.state()):
            root.destroy()
    finally:
        root = Tk()
        lbl = Label(root, text="Reboot")
        lbl.grid(row=0, column=0)
        txt = Entry(root)
        txt.grid(row=0, column=1)
        btn = Button(root, text="OK", width=15, command = restart)
        btn.grid(row=1, column=1)
        
        root.geometry('200x100+400+300')
        root.mainloop()
        
        
lbl = Label(root, text="Reboot")
lbl.grid(row=0, column=0)
txt = Entry(root)
txt.grid(row=0, column=1)
btn = Button(root, text="OK", width=15, command = restart)
btn.grid(row=1, column=1)
root.geometry('200x100+400+500')

root.mainloop()

위 코드를 실행하면 root라는 메인루프 창이 나타납니다.

아래 geometry 설정과 같이 200x100 사이즈에 400, 500 화면 좌표에 나타나죠

 

이렇게 OK 버튼이 있는 창이 나타납니다.

 

OK 버튼을 누르면 restart() 라는 함수가 작동하여 앱을 재시작하도록 하였습니다.

 

재시작 시 위젯을 설정을 바꿔 줄 수 있습니다. 창의 위치를 바꿔 봤어요

이렇게 앱이 재시작되면서 창의 위치가 이동 됬습니다.

앱을 초기화해야하는 경우 이용해 볼 수 있을 거 같네요

 

저는 너무 필요한 코드라서 한참 찾아서

문제 해결 하였답니다 !. !

 

그러면 즐거운 코딩생활 하세요

 

#TKinter재시작 #restart #reboot #파이썬 #python #스크립트 #pythonGUI

#인터페이스 #pyqt #kivy #input #예제 #UI만들기 #TKinter #화면위치바꾸기

#창위치설정 #window위치지정 #위치정의