Python Tkinter 학습 - 첫 번 째 Tkinter 프로그램

4970 단어 PythonTkinter
본문 전재:http://www.cnblogs.com/collectionne/p/6885066.html。
Tkinter 소개
Python 은 Qt, wxWidgets 등 여러 개의 그래 픽 라 이브 러 리 를 지원 합 니 다.하지만 파 이 썬 의 표준 GUI 라 이브 러 리 는 Tkinter 입 니 다.Tkinter 는 Tk Interface 의 줄 임 말이다.Python 은 Tkinter 인터페이스 가 들 어 있 는 tkinter 패 키 지 를 제공 합 니 다.
쓰기 시작
Tkinter 를 사용 하려 면 먼저 Python 에서 제공 하 는 tkinter 모듈 을 가 져 와 야 합 니 다.
1 import tkinter as tk
이 문 구 는 tkinter 모듈 을 가 져 오지 만 편리 하도록 별명 tk 를 정의 합 니 다.
GUI 시스템 에는 일반적으로 하나의 컨트롤 (widget) 개념 이 있다.컨트롤 은 단추, 스크롤 바, 텍스트 상자 등 을 말 합 니 다.특히 창 도 하나의 컨트롤 로 다른 컨트롤 을 수용 할 수 있 습 니 다.Tkinter 에 서 는 Frame 클래스 로 창 을 표시 합 니 다.우리 프로그램 은 Frame 대상 을 직접 만 들 고 컨트롤 을 추가 할 수 있 지만, 습관 적 으로 Frame 클래스 에서 Application 클래스 가 파생 됩 니 다. (다른 이름 도 부 를 수 있 습 니 다.)
1 class Application(tk.Frame):
다음은 애플 리 케 이 션 을 위 한 구조 함수init__:
1 2 3 4 def init(self, master=None): tk.Frame.init(self, master) self.grid() self.createWidgets()
우선,init__두 개의 인자 가 있 습 니 다.첫 번 째 는 self, 즉 애플 리 케 이 션 대상 자체 입 니 다.두 번 째 는 master 입 니 다. Tkinter 에서 하나의 컨트롤 은 다른 컨트롤 에 속 할 수 있 습 니 다. 이때 다른 컨트롤 은 이 컨트롤 의 master 입 니 다.기본 창 에 master 가 없 기 때문에 master 는 None 의 기본 값 이 있 습 니 다.
두 번 째 줄 tk. Frame. init (self, master) 는 애플 리 케 이 션 의 부모 클래스 Frame 의 를 호출 합 니 다.init__함수 가 Application 클래스 의 Frame 클래스 부분 을 초기 화 합 니 다.init__함수 의 정 의 는 다음 과 같다.
1 init(self, master=None, cnf={}, **kw)
Frame 대상 을 초기 화 합 니 다.master 는 Frame 의 부모 컨트롤 입 니 다. 기본 값 은 None 입 니 다.cnf 아직 모 르 겠 습 니 다.kw 는 키워드 매개 변수 로 받 아들 일 수 있 는 매개 변 수 는 뒤에서 언급 합 니 다.
대상 으로 함 수 를 직접 호출 하 는 것 이 아니 라 일반적인 의미 의 생 성 대상 (예 를 들 어 뒤의 quitButton) 이 아니 라 자신의 일부분 을 초기 화 하 는 것 이기 때문에 self 에 들 어가 야 합 니 다.어 플 리 케 이 션 도 들 어 왔 습 니 다.init__의 master 매개 변 수 를 Frame. 로 합 니 다.init__라 는 마스터 다.
세 번 째 줄 self. grid () 는 창 을 표시 하고 grid 레이아웃 을 사용 합 니 다.grid 방법 은 Frame 에서 물 려 받 은 것 이다.Tkinter 에는 레이아웃 (layot) 이라는 개념 이 있 는데 컨트롤 의 배열 방식 입 니 다.grid () 외 에 도 pack 등 레이아웃 이 있 습 니 다.
네 번 째 줄 self. createWidgets () 는 뒤에 정 의 된 createWidgets 방법 을 호출 합 니 다.
그리고 createWidgets 방법의 정의:
1 2 3 def createWidgets(self): self.quitButton = tk.Button(self, text=‘Quit’, command=self.quit) self.quitButton.grid()
createWidgets 함수 의 정 의 는 말 하지 않 고 self 인자 만 있 습 니 다.
두 번 째 줄 self. quitButton = tk. Button (self, text = 'Quit', command. self. quit) 은 응용 프로그램 류 에 quitButton 속성 을 만 들 었 습 니 다. 유형 은 Button 입 니 다.Button 의 구조 함 수 는 다음 과 같다.
1 init(self, master=None, cnf={}, **kw)
Button 대상 을 초기 화 합 니 다.master 는 Button 의 부모 컨트롤 입 니 다. 기본 값 은 None 입 니 다.cnf 아직 모 르 겠 습 니 다.kw 는 키워드 매개 변수 라 고 명명 되 어 있 으 며, 받 아들 일 수 있 는 매개 변 수 는 text (표준), command (단추 특유) 가 있 으 며, 기타 매개 변 수 는 나중에 언급 될 것 입 니 다.
여 기 는 앞 과 달리 자신 을 초기 화 하 는 것 이 아니 라 quitButton 속성 을 만 들 었 기 때문에 Button. init (...) 를 쓰 지 않 고 Button (...) 을 직접 쓰 거나 앞 처럼 self 에 들 어 갈 필요 가 없습니다.근 데 왜 self 에 들 어가 야 돼 요?이 self 는 Button 에 대응 하 는 것 이 아 닙 니 다.init__self 매개 변 수 는 master 매개 변수 입 니 다. 단 추 를 표시 하 는 부모 컨트롤 은 창 입 니 다!
우 리 는 또한 text 와 command 두 개의 명명 키워드 파 라미 터 를 전송 했다.text 는 단추 에 표 시 된 텍스트 입 니 다. 여 기 는 'Quit' 입 니 다.command 는 단 추 를 눌 렀 을 때 호출 되 는 함수 입 니 다. 여 기 는 Frame 류 의 quit 함수 입 니 다. quit 함 수 는 프로그램 을 종료 합 니 다.
세 번 째 줄, self. quitButton. grid () 는 앞 과 같이 단 추 를 표시 하고 grid () 레이아웃 을 사용 합 니 다.
그리고 애플 리 케 이 션 대상 을 만 들 차례 입 니 다.
1 2 3 app = Application() app.master.title = ‘First Tkinter’ app.mainloop()
첫 번 째 줄 app = Application (), app 이라는 Application 대상 을 만 듭 니 다.
두 번 째 줄 app. master. title = 'First Tkinter' 창 제목 을 'First Tkinter' 로 설정 합 니 다.물론 창 이 작 아서 제목 이 보이 지 않 을 수도 있 습 니 다.
세 번 째 줄 app. mainloop (), 주 순환 에 들 어 갑 니 다.
지금 프로그램 을 실행 하고 Quit 단 추 를 누 르 면 종료 되 는 지 확인 하 세 요.물론 창 위의 닫 기 단 추 를 누 르 면 종료 할 수 있 습 니 다.
주 순환
GUI 프로그램 에는 메 인 루프 (main loop) 라 는 개념 이 있 습 니 다.의사 코드 의 형식 으로 표현 하 는 것 은 다음 과 같다.
1 2 3 4 while noQuitCommands: checkInput() updateWidgets() …
주 순환 은 종료 요청 이 있 을 때 까지 계속 실 행 됩 니 다.주 순환 에 서 는 사용자 의 입력 (예 를 들 어 마우스, 키보드 등) 을 확인 하고 컨트롤 을 업데이트 합 니 다.여기 서 마우스 로 단 추 를 누 르 면 단추 의 command 를 실행 합 니 다. command 는 Frame. quit 입 니 다. command 를 실행 하면 Frame. quit 를 실행 하 는 것 과 같 습 니 다. 순환 이 끝나 고 컨트롤 이 모두 삭제 되 며 프로그램 이 끝 납 니 다.
최종 코드
다음은 본 수업 의 최종 코드 입 니 다. 전체 주석 을 달 아 주세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
tkinter 패 키 지 를 가 져 와 별명 tk 를 정의 합 니 다.
import tkinter as tk
응용 프로그램 클래스 정의 응용 프로그램 / 창, 계승 프레임 클래스
class Application (tk. Frame): \ # Application 구조 함수, master 는 창의 부모 컨트롤 def init (self, master = None): \ # Application 의 Frame 부분 tk. Frame. init (self, master) \ # 창 을 표시 하고 grid 레이아웃 self. grid () \ # 컨트롤 self. createWidgets () 를 만 듭 니 다.
#     
def createWidgets(self):
    #        'Quit',        
    self.quitButton = tk.Button(self, text='Quit', command=self.quit)
    #     ,   grid  
    self.quitButton.grid()

응용 프로그램 대상 app 만 들 기
app = Application()
창 제목 을 'First Tkinter' 로 설정 합 니 다.
app.master.title = ‘First Tkinter’
주 순환 시작
app.mainloop()

좋은 웹페이지 즐겨찾기