본문 바로가기

GUI21

독학 Python tkinter(GUI) - 20. py to exe 로 변환하기 Q. 왜 exe로 변환이 필요할까? 지금까지 포스팅에서 GUI를 만든건 가시성이나 편리성보다는 '프로그램 배포' 라는 목적에 의미를 두었기 때문이다. 다른 사람이 쓸 수 있도록 전달하려함이 가장 큰 목적이었는데, tkinter로 작성하더라도 python이 설치 되어 있지 않으면, .py로 전달해주는 파일은 아무런 의미가 없다. exe 파일로 전환하여 윈도우에서 실행할 수 있도록 전달해줘야 실제 사용자가 어려움 없이 프로그램에 접근할 수 있게된다. .py 파일을 exe로 변환하는 방법은 여러가지가 있지만, 오늘은 간략하게 pyinstaller를 통한 예시를 보여주고 마무리 될 예정이다. 1. pyinstaller 설치하기 - 터미널에서 pip 를 통해 pyinstaller 모듈을 설치한다. - pip in.. 2023. 11. 30.
독학 Python tkinter(GUI) - 19.Last piece1(thread) 이제 우리가 원하는 간단한 GUI는 취향에 맞춰 만들 수 있다는 자신감이 생겼을 것이다. 여기까지만 해도 훌륭하지만, 조금 아쉬운 부분이 있다. 아래의 요청사항을 처리하는 코드를 작성하며 문제점과 처리 방법에 대한 고민을 해보자. Request. - 버튼을 누르면 1부터 10까지 1초에 1씩 증가하는 타이머 GUI를 만들어 보세요. 위와 같은 요청사항을 받는다면, 어렵지 않게 시간을 보여줄 수 있는 레이블 또는 엔트리를 하나 만들고 time 라이브러리를 활용해 버튼을 누르면 1초를 기다린 뒤 위에서 생성한 레이블(또는 엔트리)의 값을 변경해주면 되는 간단한 GUI이다. 자신있게 코드를 작성해보면 아래와 크게 다르지 않을 거다. 1. 코드 작성하기 from tkinter import * import tim.. 2023. 11. 22.
독학 Python tkinter(GUI) - 18.Menubutton 단순해보이는 메모장만 하더라도 화면뿐 아니라 상단에 메뉴바가 있다. 당연히 우리도 이런걸 할 수 있다. button과 유사한 방법으로 메뉴항목을 만들고, 해당 항목을 선택할 때 특정 기능을 실행할 수 있다. 1. 최상단 메뉴 항목 만들기 - 일단 메모장과 같은 메뉴 항목을 만들고, 실행할 comman는 print문으로 단순히 확인만 진행해보겠다. from tkinter import * root = Tk() root.title('To올라운드의 알찬 GUI 강의') root.geometry("300x500") # 가로 X 세로 / 대문자X 하면 실행안됨 #msb.showinfo('Welcome','안녕하세요. To올라운더와 함께 하는 GUI입니다.') body_frame = Frame(root, relief.. 2023. 11. 16.
독학 Python tkinter(GUI) - 17.progressbar 진행 상태를 알려주는 GUI로 Label 의 값을 계속 변경해 줄 수도 있지만, 좀 더 시각적이고 가시적으로 보여주기위해서는 progressbar를 이용해보는게 좋다. 1. 코드 - 이번에도 tkiner.ttk 라이브러리를 사용한다. - 단순히 Progressbar 객체(위젯)를 생성하는 것은 한두 줄의 코드로 되지만, 우리가 원하는 것처럼 진행하기 위해서는 몇가지 옵션이 필요하다. - 파라미터별 비교를 위해 progressbar1~3을 각각 만들었다. from tkinter import * import tkinter.ttk root = Tk() root.title('To올라운드의 알찬 GUI 강의') root.geometry("300x500") # 가로 X 세로 / 대문자X 하면 실행안됨 #msb.sh.. 2023. 11. 15.
독학 Python tkinter(GUI) - 16.photoimage(+PIL) 사용자 편의를 위한 기능 구현에 초점이 맞춰진 GUI이지만, 지금까지 배운 GUI의 버튼이나 다른 위젯들은 모두 텍스트로 이루어져 뭔가 삭막한 느낌을 가졌을 것이다. 그래서 오늘은 tkinter내에 이미지를 추가할 수 있는 photoimage에 대해 알아보겠다. 1. 준비물 - 오늘은 준비물이 있다. - 바로 GUI에 추가할 이미지 인데, 아무런 이미지를 하나 불러 와도 되고, 만만한 비단뱀 이미지를 다운 받아도된다. - 해당 파일의 이름은 'python.png' 이고 경로는 코드를 작성하는 py 와 같은 경로에 있다. - 경로가 동일하지 않아도 상관없지만 경로가 다르다면 이후 코드에서 해당 경로도 나타내주어야한다. - 준비는 이제 끝났다. 2. 코드 - 코드는 외의로 간단하다. Label을 선언해주고,.. 2023. 11. 14.
독학 Python tkinter(GUI) - 15.Combobox 콤보박스(Combobox)는 드랍다운 형식으로 결과 값이나 텍스트를 목록 형식으로 보여주는 기능을 말한다. 말로는 조금 어려울 수 있지만 콤보박스 또한 사용자가 다른 프로그램을 통해 흔히 봐왔던 기능이고, 단순히 보면 이런 목록 형태로 선택을 하는 기능이다. 1. 코드 - 지난 시간 사용했던 radiobutton도 여러 항목 중 하나를 선택하는 기능을 가지고 있었다. - 그런데, radiobutton을 만들었을 때 적용했던 연령 그룹을 좀 더 세분화하여 나누거나 나이를 입력 받으려하면, radiobutton 보다는 combobox가 더 적합한 기능이 된다. - 내용 비교를 위해 radiobutton과 함께 나타내보겠다. - combobox를 사용하기 위해서는 tkinter.kkt 라이브러리가 필요하다. .. 2023. 11. 13.
독학 Python tkinter(GUI) - 14.radiobutton(+LabelFrame) 지난 포스팅에는 각각의 선택이 진행되어야 하는 checkbutton을 확인했다면, 오늘 포스팅은 여러개 중 하나를 선택하는 경우에 사용되는 radiobutton을 확인해 볼 예정입니다. 1. radiobutton 기본 설정 from tkinter import * import tkinter.messagebox as msb from tkinter import filedialog # 파일 open 기능 사용 root = Tk() root.title('To올라운드의 알찬 GUI 강의') def get_checkbutton_stat(): print(f'check1 의 상태 : {check1_value.get()}') print(f'check2 의 상태 : {check2_value.get()}') print(f'c.. 2023. 11. 12.
독학 Python tkinter(GUI) - 13.checkbutton 사실 앞의 포스팅만으로도 충분히 GUI를 구성할 수 있지만, 앞으로 배울 checkbutton이나 radiobutton 등을 함께 배운다면 용도에 맞게 더 적합한 GUI 환경을 구성할 수 있다. 1. checkbutton - 체크 버튼은 사용자가 고정된 내용이나 기능을 반복적으로 사용하거나 사용 유무를 표기할 때 주로 사용한다. - checkbutton 의 경우, 각각 독립적인 상태를 가진다.(다른 checkbutton의 상태에 영향을 받지 않는다.) from tkinter import * import tkinter.messagebox as msb from tkinter import filedialog # 파일 open 기능 사용 root = Tk() root.title('To올라운드의 알찬 GUI 강의.. 2023. 11. 11.
독학 Python tkinter(GUI) - 12.Text(+scrollbar) 이제 우리는 앞선 포스팅에서 Entry를 통해 [예/아니오] 와 같은 버튼보다 확장된 형태의 정보를 주고 받을 수 있게 되었다. 그런데, Entry는 태생적인 제한이 있는데, 바로 줄바꿈을 사용하지 못한다는 것이다. 어떠한 정보를 전달하는데 있어 줄바꿈(Enter)가 없으면 여러 면에서 불편하다. 가장 큰 불편함은 텍스트들이 단위별로 구분되지 않는다는 것인데, 이런 부분을 해소해줄 수 있는 요소(위젯)이 Text이다. Text는 사실 크게 어렵지 않다. 하지만 Text만으로는 GUI상에서 조금 부족한 부분이 있기 때문에 scrollbar와 함께 표현을 해줘야 좀 더 디테일이 살아있는 GUI가 될 수 있다. 1. Text 사용하기 from tkinter import * import tkinter.messa.. 2023. 11. 10.
독학 Python tkinter(GUI) - 11.Entry2(+filedialog) 오늘은 지난 포스팅에서 예고한 entry 2번째 이야기, 활용편이다. 보통 entry는 사용자의 입력을 받기 위해 사용한다는 것을 이제 모두가 알텐데 특정 폴더 경로나 파일 이름 등을 사용자가 직접 입력한다면, 사용자가 오타로 인해 잘못 입력할 수도 있고, 다른 내용을 타이핑 하던 중 의도치 않게 수정이 될 수도 있다. 이런 상황을 유연하게 대처하기 위해 몇가지 entry에 몇가지 설정과 과정을 더해주면 좀 더 오류를 줄이고 사용도 편리한 GUI 환경을 구성할 수 있다. 1. entry 수정 가능 / 불가능 - 사용자의 입력을 받기 위한 entry의 값을 수정 불가능하게 한다는게 뜬금 없는 말처럼 느껴질 수 있다. - 하지만 실제로 마지막 결과물을 본다면 참 유용하게 사용할 수 있겠구나 라는 생각이 들 .. 2023. 11. 9.
반응형