본문 바로가기

파이썬64

독학 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.
독학 Python tkinter(GUI) - 10.Entry1 우리는 지난 포스팅을 통해 사용자와 소통을 할 수 있는 프로그램 개발자로 거듭났다. 지금까지 배운 내용을 정리해보면 Frame 이나 위치(pack, grid, place) 등은 GUI를 꾸미기 위한 내용이었으며, Label 이나 Button, Messagebox 의 경우에는 사용자의 요청 사항이 개발자가 정해놓은 틀에서 단순한 선택 정도의 소통이 가능했다. 그런데 [예, 아니오] 같은 정해진 답만을 전달 받는건 프로그램으로써 많이 부족하다는 생각이 들 것이다. 가장 단순하게 사용자가 ID와 PW를 사용자가 입력하려 해도 지금까지 배운 것들로는 불가능하다. 이런 사용자의 입력을 위한 기능이 오늘 포스팅할 Entry와 다음 포스팅 주제인 Text이다. 1. Entry 언제 쓰일까? - 서두에 얘기된 것 처럼.. 2023. 11. 8.
독학 Python tkinter(GUI) - 09.MessageBox 일반적인 프로그램을 사용하다 보면, 잘못된 입력이나 동작을 했을 때, 경고나 알림을 주는 여러 메세지들을 봤을 것이다. 우리가 작성하는 프로그램도 이런 종류의 메세지를 통해 사용자에게 정보를 제공하거나 오류를 수정하도록 유도할 수 있는데, 오늘은 메세지에 대해 알아보려한다. 1. 살짝 맛보기 - 메세지창을 띄우기 위해서는 tkinter.messagebox 라이브러리가 필요하다. - 메세지 박스의 경우 사용 빈도가 생각보다 높아 alias(약칭/별명) 을 설정해두면 훨씬 편리하다. - 2라인과 같이 라이브러리를 호출한 뒤 지난 시간에 사용한 버튼 코드에 'msb.showinfo ~~ ' 를 추가해주면 프로그램이 시작될 때 다음과 같은 메세지 창이 나타난다. - 사용방법은 msb.showinfo(title,.. 2023. 11. 7.
독학 Python tkinter(GUI) - 08.Button Button은 번역을 하면 더 난해한 느낌이 드는, 메소드나 함수 등을 실행시키는 단추이다. 그래서 설명보다는 원래 자신이 알던 이미지를 떠올리는게 더 정답이라고 생각한다. 예를 들면 해당 버튼을 누르면 뭔가 진행되거나 실행된다는건 다들 겪어 본 일들일 거라 생각한다. 1. Button(버튼)만들기 - 만드는 방법은 Label을 만드는 방법과 크게 다르지 않다. - 대신 위에 언급한 바와 같이 어떤 동작을 실행시킬 수 있는 command를 지정할 수 있다는게 가장 큰 특징이다. 2. 코드 from tkinter import * root = Tk() root.title('To올라운드의 알찬 GUI 강의') root.geometry("200x300") # 가로 X 세로 / 대문자X 하면 실행안됨 body_f.. 2023. 11. 6.
독학 Python tkinter(GUI) - 07.place place는 pack, grid 와 함께 GUI의 위치를 지정하는 방법이다. pack이나 grid의 경우 상대적인 위치들로 배치가 되었다면 place는 정확한 위치 값을 지정할 수 있다는 장점과 pack이나 grid와 함께 혼용해서 사용할 수 있다는 장점이 있다. 1. place 사용 방법 - 사용방법은 간단하다. 해당 요소(위젯).place(x=x 좌표, y= y 좌표) 값을 입력해주면된다. - 기준 값은 늘 그렇듯 왼쪽 상단이 (0, 0)이다. - 지난 grid 포스팅 때 사용한 코드 중 일부만 place로 변경해보겠다. from tkinter import * root = Tk() root.title('To올라운드의 알찬 GUI 강의') root.geometry("400x500") # 가로 X 세로 .. 2023. 11. 5.
독학 Python tkinter(GUI) - 06.grid 1. 요소(위젯) grid로 나타내기. - tkinter GUI는 pack, grid, place 3가지 방식으로 위치를 나타낼 수 있는데, 지난 pack에 관련된 포스팅에 이어 2번째 grid에 대한 포스팅이다. [이전 글 추가] - pack만 사용하거나 grid만 사용해도 무관하나, 상황에 따라 더 편리한 방법이 있다보니 2가지를 다 알고 혼용하는 것도 좋다. - grid가 가지는 가장 큰 장점은 반듯한 사격형에 넣은 것과 같은 규격이다. - 셀 단위 배치라고도 부르는데, column(열)과 row(행)의 번호를 할당해주는 방식이다. from tkinter import * root = Tk() root.title('To올라운드의 알찬 GUI 강의') root.geometry("600x500") # 가.. 2023. 11. 4.
독학 Python tkinter(GUI) - 05.pack 1. 요소(위젯) 표시하기 - 앞에서 Frame이나 Label과 같은 요소(위젯)들을 생성한뒤, pack()을 통해 GUI상에 표시해주는 것을 기억해볼 수 있다. 그런데, 실제 tkinter에서는 pack 뿐만 아니라 grid와 place까지 총 3가지 방법으로 UI를 표시할 수 있다. - 간략한 사용법 설명에 앞서 주의해야할 사항은 하나의 Frame 내에서는 pack과 grid 중 하나의 표기 방법으로 통일해야한다. (place는 혼용 가능) - 예를 들어 지난 시간에 만들었던 주황색 영역의 Frame안에 초록색과 파란색의 Frame을 만든 뒤, 초록색 Frame 내부에 있는 요소들은 pack 을 파란색 Frame 내부에 있는 요소들은 grid 를 이용해 나타낼 수 있다. - 하지만 하나의 Frame .. 2023. 11. 3.
독학 Python tkinter(GUI) - 04.Label 1. Label? - 우리에게는 라벨이라는 발음이 더 익숙하지만, 실제 외국 강의영상을 보면 대부분 레이블이라고 발음한다. - 레이블(Label)은 GUI 상에 일반적으로 나타나는 글들을 표현하는 요소(위젯)이다. - 대부분 제목의 용도로 쓰거나 함께 보이는 그림이나 표를 설명하는 형태의 문장을 입력할 때 사용한다. from tkinter import * root = Tk() root.title('To올라운드의 알찬 GUI 강의') root.geometry("300x800") # 가로 X 세로 / 대문자X 하면 실행안됨 head_frame = Frame(root, relief='solid', bd=2, background='red') head_frame.pack(fill='both', expand=Tru.. 2023. 11. 2.
독학 Python tkinter(GUI) - 03.Frame 1. Frame 어디에 숨어 있었나? - 첫 포스팅에서 각각의 요소들에 대한 명칭을 배우며, Frame을 보지 못했을 것입니다. - 영어 단어 그대로 '틀' 이라는 의미 인데요. - 우리는 이 '틀'을 이용해 각각의 요소(위젯)들을 배치하기도 하고, 틀안에 다시 틀을 넣어서 원하는 위치를 가지도록 할 수 있습니다. - 먼저 처음 보았던 GUI 각 요소들의 설명시에 확인하지 못했던 Frame이 어디있는지 확인해볼까요? - 오른쪽에 보이는 검은색 으로 나뉘어진 영역들이 모두 Frame 영역들입니다. - 실제 프로그램에서는 상황에 따라 실선이나 점선 등으로 나타낼 수도 있고, 안 보이게도 설정 가능합니다. - 해당 영역을 나누는 가장 큰 이유는 필요한 기능끼리 정렬해서 배치하고 관리하기 위함입니다. - 그리고.. 2023. 11. 1.
반응형