Python Tkinter 예제

Python Tkinter Yeje



Python은 다양한 유형의 애플리케이션을 구현하는 데 사용할 수 있는 다목적 프로그래밍 언어입니다. GUI(그래픽 사용자 인터페이스) 기반 애플리케이션을 생성하기 위한 다양한 유형의 모듈이 있습니다. Python tkinter가 그 중 하나입니다. 모든 데스크탑 애플리케이션은 tkinter 모듈을 사용하여 쉽게 구현할 수 있습니다. Python tkinter 모듈의 사용법을 배우려면 Python 프로그래밍에 대한 기본 지식이 있으면 더 좋습니다. 이 튜토리얼에서는 Python tkinter 모듈을 사용하여 GUI 애플리케이션을 만드는 다양한 방법을 보여줍니다.

Tkinter 모듈 설치

tkinter 모듈은 기본적으로 Python에 설치되지 않습니다. 따라서 Python 3+ 버전에 tkinter 모듈을 설치하려면 다음 명령을 실행해야 합니다.







$ sudo 적절한 설치하다 python3-tk



다른 Tkinter 위젯

tkinter 모듈에는 다양한 목적을 위한 다양한 위젯이 포함되어 있습니다.







위젯 이름 목적
상표 사용자에게 도움말 메시지를 표시하는 데 사용됩니다.
단추 응용프로그램에 다양한 버튼을 추가하는 데 사용됩니다.
액자 이는 정리된 양식을 디자인하기 위해 다양한 유형의 위젯을 포함하는 위젯 컨테이너처럼 작동합니다.
기입 사용자로부터 한 줄 텍스트를 가져오는 데 사용됩니다.
체크버튼 여러 옵션에서 사용자로부터 여러 입력을 받기 위해 확인란 버튼을 추가하는 데 사용됩니다.
라디오 버튼 여러 옵션 중에서 사용자로부터 단일 입력을 받기 위해 라디오 버튼을 추가하는 데 사용됩니다.
콤보박스 버튼 여러 옵션에서 사용자로부터 단일 입력을 받기 위해 드롭다운 목록을 추가하는 데 사용됩니다.
리스트 박스 여러 옵션에서 사용자로부터 여러 입력을 받기 위해 목록 상자를 추가하는 데 사용됩니다.
텍스트 사용자로부터 여러 줄의 텍스트를 가져오는 데 사용됩니다.
메시지 사용자에게 메시지 창을 표시하는데 사용됩니다.
스크롤 바 창을 위아래로 스크롤하기 위해 창에 스크롤바를 추가하는 데 사용됩니다.
메뉴 버튼 사용자에게 메뉴를 표시하는데 사용됩니다.
메뉴 사용자에게 메뉴 항목을 표시하는 데 사용됩니다.
패널창 수평 및 수직 창을 포함하는 위젯 컨테이너처럼 작동합니다.
응용 프로그램에 탭 창을 추가하는 데 사용됩니다.

다른 Tkinter 예제

다음 예에서는 몇 가지 일반적인 tkinter 위젯의 사용을 보여줍니다.

예 1: 간단한 GUI 애플리케이션 생성

제목과 특정 높이 및 너비가 포함된 대화 상자를 화면 중앙에 표시하는 다음 콘텐츠로 Python 파일을 만듭니다.



#필요한 모듈 가져오기
tkinter 가져오기에서 *

#창용 객체 생성
tkobj = Tk ( )

#창 제목 설정
tkobj.제목 ( 'tkinter 모듈 배우기' )

#창의 높이와 너비를 설정합니다.
tkobj.기하학 ( '300x150' )

#창의 표시 위치를 중앙에 설정
tkobj.eval ( 'tk::PlaceWindow . 센터' )

#Tkinter 실행
tkobj.mainloop ( )

산출:

스크립트를 실행하면 다음 출력이 나타납니다. 'Tkinter 모듈 알아보기' 제목의 대화 상자가 표시됩니다.

예 2: 라벨 및 버튼 사용

레이블과 대화 상자가 있는 창을 표시하는 다음 스크립트를 사용하여 Python 파일을 만듭니다.

#필요한 모듈 가져오기
tkinter 가져오기에서 *

#창에 대한 객체 생성
tkobj = Tk ( )

#창 제목 설정
tkobj.제목 ( 'tkinter 모듈 배우기' )

#창의 높이와 너비를 설정합니다.
tkobj.기하학 ( '400x150' )

#라벨 객체 정의
lbl = 라벨 ( tkobj, 텍스트 = '간단한 창입니다' )
#창에 라벨 추가
lbl.팩 ( ipadx = 30 , 아이패드 = 이십 )

#버튼 객체 정의
btn = 버튼 ( tkobj, 텍스트 = '클릭 해주세요' )
#위치가 있는 창에 버튼 추가
btn.팩 ( ipadx = 30 , 아이패드 = 10 )

#창의 표시 위치를 중앙에 설정
tkobj.eval ( 'tk::PlaceWindow . 센터' )

#Tkinter 실행
tkobj.mainloop ( )

산출:

스크립트를 실행하면 화면 중앙에 라벨과 버튼이 있는 창이 나타납니다.

예 3: 글꼴 색상 및 배경색 설정

레이블과 다채로운 버튼이 있는 창을 표시하는 다음 스크립트를 사용하여 Python 파일을 만듭니다. 여기서는 background 속성을 사용하여 버튼의 배경색을 설정하고 foreground 속성을 사용하여 버튼의 글꼴 색상을 설정합니다.

#필요한 모듈 가져오기
tkinter 가져오기에서 *

#창에 대한 객체 생성
tkobj = Tk ( )

#창 제목 설정
tkobj.제목 ( 'tkinter 모듈 배우기' )

#창의 높이와 너비를 설정합니다.
tkobj.기하학 ( '400x150' )

#라벨 객체 정의
lbl = 라벨 ( tkobj, 텍스트 = '배경 및 전경색 설정' )
#창에 라벨 추가
lbl.팩 ( ipadx = 30 , 아이패드 = 이십 )

#배경색과 전경색으로 버튼 객체 정의
btn = 버튼 ( tkobj, 텍스트 = '클릭 해주세요' , 배경 = '파란색' , 전경 = '빨간색' )
#위치가 있는 창에 버튼 추가
btn.팩 ( ipadx = 30 , 아이패드 = 8 )

#창의 표시 위치를 중앙에 설정
tkobj.eval ( 'tk::PlaceWindow . 센터' )

#Tkinter 실행
tkobj.mainloop ( )

산출:

스크립트를 실행하면 다음 창이 나타납니다.

예 4: 프레임 사용

다음 Python 스크립트에서는 프레임 위젯 내에 레이블과 두 개의 버튼이 표시됩니다. 출력을 확인하는 스크립트로 Python 파일을 만듭니다.

#필요한 모듈 가져오기
tkinter 가져오기에서 *

#창에 대한 객체 생성
tkobj = Tk ( )

#창 제목 설정
tkobj.제목 ( 'tkinter 모듈' )

#창의 높이와 너비를 설정합니다.
tkobj.기하학 ( '250x100' )

#프레임 개체 정의
frm = 프레임 ( tkobj )
frm.pack ( )
lframe = 프레임 ( tkobj )
lframe.pack ( =왼쪽 )
rframe = 프레임 ( tkobj )
rframe.pack ( =오른쪽 )

#프레임 내부에 라벨 정의
lbl = 라벨 ( 프롬, 텍스트 = '프레임 활용' , fg = '파란색' )
lbl.팩 ( )

#프레임 내부에 버튼 정의
btn1 = 버튼 ( 프레임, 텍스트 = '' , fg = '검은색' , bg = '하얀색' )
btn2.팩 ( =오른쪽 )

#창의 표시 위치를 중앙에 설정
tkobj.eval ( 'tk::PlaceWindow . 센터' )

#Tkinter 실행
tkobj.mainloop ( )

산출:

스크립트를 실행하면 다음 출력이 나타납니다.

예제 5: 버튼 이벤트 처리

메시지 상자의 사용법은 다음 스크립트에 나와 있습니다. 버튼을 클릭하면 메시지 상자가 표시됩니다.

#필요한 모듈 가져오기
tkinter 가져오기에서 *
tkinter 가져오기 메시지 상자에서

#창에 대한 객체 생성
tkobj = Tk ( )

#창 제목 설정
tkobj.제목 ( 'tkinter 모듈 배우기' )

#창의 높이와 너비를 설정합니다.
tkobj.기하학 ( '400x150' )

#메시지 상자를 표시하는 함수 정의
데프 디스플레이 ( ) :
messagebox.showinfo ( '정보' , '버튼이 클릭되었습니다.' )

#글꼴 색상, 스타일, 위치를 사용하여 라벨 텍스트 만들기
상표 ( tkobj, 텍스트 = 'tkinter를 사용하는 데스크탑 애플리케이션.' , fg = '녹색' ) .팩 ( 아일랜드 사람 = 25 )

#버튼 핸들러를 사용하여 버튼 만들기
단추 ( tkobj, 텍스트 = '메시지 표시' , 명령 =디스플레이 ) .팩 ( )

#창의 표시 위치를 중앙에 설정
tkobj.eval ( 'tk::PlaceWindow . 센터' )

#Tkinter 실행
tkobj.mainloop ( )

산출:

스크립트를 실행하면 다음 창이 나타납니다.

버튼을 누르면 다음과 같은 메시지 상자가 나타납니다.

예제 6: 사용자로부터 입력 받기

tkinter 모듈에서는 사용자로부터 입력을 받을 수 있는 여러 위젯을 사용할 수 있습니다. 가장 일반적인 위젯의 사용은 다음 스크립트에 표시됩니다. 다음 코드를 사용하여 Python 파일을 생성하여 출력을 확인합니다.

#필요한 모듈 가져오기
tkinter 가져오기에서 *
tkinter.ttk에서 가져오기 콤보박스
tkinter import ttk에서
tkinter 가져오기 ~처럼 ㅋㅋㅋ
tkinter 가져오기 메시지 상자에서

#tkinter 객체 생성
tkobj = Tk ( )

#창 제목 설정
tkobj.제목 ( '사용자 정보 양식' )

#창의 높이와 너비를 설정합니다.
tkobj.기하학 ( '550x320' )

#양식 값을 표시하는 함수 정의
데프 디스플레이_값 ( ) :
#한 줄짜리 텍스트 읽기
이름 = '이름 : ' + name_val.get ( ) + ' \N '
#선택한 라디오 버튼 값을 읽습니다.
만약에 성별.get ( ) == 1 :
지 = '남성'
또 다른:
지 = '여성'
지 = '성별 : ' + 지 + ' \N '

#선택한 체크박스 값 읽기
게임 = ''
만약에 g1.get ( ) == 1 :
게임 = '크리켓'
만약에 g2.get ( ) == 1 :
만약에 게임 ! = '' :
게임 += ', ' + '축구'
또 다른:
게임 = '축구'
만약에 g3.get ( ) == 1 :
만약에 게임 ! = '' :
게임 += ', ' + '농구'
또 다른:
게임 = '농구'
게임 = '게임 : ' + 게임 + ' \N '

#콤보박스 값 읽기
국가 = '국가 : ' + countryVal.get ( ) + ' \N '
#여러줄 텍스트 읽기
주소 = '주소 : ' + addr.get ( '1.0' , '끝' ) + ' \N '
#필드에서 가져온 모든 값 병합
form_values ​​= 이름 + g + 게임 + 국가 + 주소
#메시지 상자에 값을 표시합니다.
messagebox.showinfo ( '사용자 정보 세부 사항' , 양식_값 )


#라벨 및 이름 필드 생성
상표 ( tkobj, 텍스트 = '이름 : ' ) .장소 ( 엑스 = 100 , 그리고 = 이십 )
name_val = StringVar ( )
ttk.Entry ( tkobj, 텍스트변수 =name_val ) .팩 ( 패드엑스 = 220 , 아일랜드 사람 = 이십 )

#레이블과 라디오 버튼 만들기
상표 ( tkobj, 텍스트 = '성별 : ' ) .장소 ( 엑스 = 100 , 그리고 = 60 )
성별 = IntVar ( )
성별.세트 ( 1 )
라디오 버튼 ( tkobj, 텍스트 = '남성' , 변하기 쉬운 =성별, = 1 ) .장소 ( 엑스 = 210 , 그리고 = 60 )
라디오 버튼 ( tkobj, 텍스트 = '여성' , 변하기 쉬운 =성별, = 2 ) .장소 ( 엑스 = 290 , 그리고 = 60 )

#라벨 및 체크박스 버튼 생성
상표 ( tkobj, 텍스트 = '좋아하는 게임 : ' ) .장소 ( 엑스 = 100 , 그리고 = 100 )
g1 = IntVar ( )
g2 = IntVar ( )
g3 = IntVar ( )
체크버튼 ( tkobj, 텍스트 = '크리켓' , 변하기 쉬운 =g1 ) .장소 ( 엑스 = 210 , 그리고 = 100 )
체크버튼 ( tkobj, 텍스트 = '축구' , 변하기 쉬운 =g2 ) .장소 ( 엑스 = 290 , 그리고 = 100 )
체크버튼 ( tkobj, 텍스트 = '농구' , 변하기 쉬운 =g3 ) .장소 ( 엑스 = 380 , 그리고 = 100 )

#튜플 값 정의
데이터 = ( '방글라데시' , '일본' , '미국' )
#레이블 및 콤보박스 생성
상표 ( tkobj, 텍스트 = '국가 : ' ) .장소 ( 엑스 = 100 , 그리고 = 140 )
countryVal = StringVar ( )
콤보 박스 ( tkobj, 가치 =데이터, 텍스트변수 =국가발 ) .장소 ( 엑스 = 220 , 그리고 = 140 )

#라벨 및 텍스트 필드 생성
상표 ( tkobj, 텍스트 = '주소 : ' ) .장소 ( 엑스 = 100 , 그리고 = 180 )
주소 = ( tk.텍스트 ( tkobj, = , 너비 = 이십 ) )
주소.장소 ( 엑스 = 220 , 그리고 = 180 )

#버튼 핸들러를 사용하여 버튼 만들기
단추 ( tkobj, 텍스트 = '제출하다' , 명령 =display_values ) .장소 ( 엑스 = 250 , 그리고 = 250 )

#Tkinter 실행
tkobj.mainloop ( )

산출:

스크립트를 실행하면 다음 창이 나타납니다.

양식의 필드를 작성하고 '제출' 버튼을 누르십시오.

제출된 값이 포함된 다음 메시지 상자가 나타납니다.

결론

Python tkinter 모듈을 사용하여 GUI 애플리케이션을 생성하는 방법은 여러 예제를 통해 이 튜토리얼에 표시됩니다.