2001. 4. 25(수) Python Essential 세미나 Gui 프로그래밍 - Tkinter 발표자 : 박승기.

Slides:



Advertisements
Similar presentations
일정 관리 다이어리 제작 JSP Programming with a Workbook. 학습 목표  사용자의 일정을 관리할 수 있는 다이어리에 대하여 알아보자. JSP Programming with a Workbook2.
Advertisements

Python Essential 세미나 1 CGI 프로그램 작성법 발표자 : 박승기 ( 수 )
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
스마트워크(가상화) 외부 접속 방법 정보관리실.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Insert Footer or Copyright Information Here
MCMS3000 네트워크 설정방법 [반도 HFCNMS 시스템 Set-up] 반도전자통신
Image & Video processing
윤 홍 란 다이알로그(대화상자) 윤 홍 란
제 9 장 구조체와 공용체.
컴퓨터 프로그래밍 기초 [Final] 기말고사
19장 스윙과 이벤트 처리 Section 1 스윙 컴포넌트 Section 2 이미지 아이콘과 라벨
2017년 하계 경성 프로그래밍 교육 (5/5) 경성대학교 공과대학 소프트웨어 학과.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
forms 객체 입력상자 체크상자, 라디오 버튼 목록상자
마우스(Mouse) 다루기 컴퓨터응용 및 실습 I.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
제 2 장 WML 시뮬레이터 및 무선인터넷 서버 설치
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
윈도 프로그래밍.
LCD 모듈의 특징 LCD 컨트롤러 내장으로 모든 디스플레이 기능을 명령어로 제어 8비트 혹은 4비트로 인터페이스
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
분할 윈도, 다중 뷰… 영상 통신 연구실 권 동 진 발표 일 : 04월 27일.
13. 연산자 오버로딩.
Method & library.
JA A V W. 03.
자바응용.
인터넷응용프로그래밍 JavaScript(Intro).
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
시스템 인터페이스 Lab3 Unix 사용법 실습.
10장 tkinter로 GUI 만들기.
두근두근 파이썬 수업 10장 tkinter로 GUI 만들기.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
통계 사용설명서 1. 구성화면 현재선택창 리스트박스 메인 메뉴 데이터 표출영역 GIS 영역.
LCD Controller Colorbar
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
USN(Ubiquitous Sensor Network)
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
인터넷응용프로그래밍 JavaScript(Intro).
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Moving Control in Web using Ajax Toolkit
스위시 맥스2 이미지 갤러리 만들기 아래 그림이 스위시 맥스2로 만들 이미지 갤러리 이다.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
Canary value 스택 가드(Stack Guard).
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
청각장애인용 APP 구성 및 사용법.
단축키 기능 1. 단축키 기능 설명 Alt + R 조회 S 저장 I 삽입 A 추가 D 삭제 P 출력 Q 닫기
에어 PHP 입문.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
가장 많이 사용 Accelerator 최상위 WM_COMMAND, OLE 메시지 관련 이벤트 처리만 가능 이 클래스를 상속받아서 다른 이벤트 처리 이벤트 처리 관련 윈도우(창) 최상위 클래스 멀티 테스킹(모듈) CFrameWnd, Cview,
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
메뉴(Menu) 컴퓨터응용 및 실습 I.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
함수, 모듈.
발표자 : 이지연 Programming Systems Lab.
9 브라우저 객체 모델.
Spring, 2019 School of CSE Pusan National University
과제물 3호 3번 문제 설명자료.
Power Point 예제 디자인 적용 (서식) - (디자인적용) - (원하는 디자인 선택)
CHAP 5. 메뉴와 대화상자.
6 객체.
Ch 4. 선택 위젯의 사용과 커스텀뷰 만들기 Assignment #1 04 – 1, 2) 08학번 정보과학과 유재윤
Presentation transcript:

2001. 4. 25(수) Python Essential 세미나 Gui 프로그래밍 - Tkinter 발표자 : 박승기

● Tkinter Tkinter 모듈(“ Tkinterface”)은 Tk GUI toolkit을 이용하는 표준 파 기본 widget생성 Push button Radio button Packer 동작원리 Widget 삽입 메뉴바와 단축기 이벤트와 바인딩 참고서적 Tkinter 모듈(“ Tkinterface”)은 Tk GUI toolkit을 이용하는 표준 파 일썬 인터페이스이다. Tk 와 Tkinter는 Linux/Unix , Windows, Macintosh 에서 사용가능 import Tkinter 혹은 from Tkinter from * : 모듈을 사용하기위한 방법 root=Tk() : Tkinter를 초기화하기 위해서 Tk root위젯을 만들어야 한다. root 위젯은 가장 먼저 만들어져야 하며 각 프로그램에 단 한 개만 존 재할 수 있다. w = Label(root, text="Hello, world!") w.pack() : Label 위젯은 텍스트, 아이콘 혹은 이미지 등을 표시할 수 있다. 텍스트를 출력하기 위해서 text 옵션을 사용한다. 그리곤, pack() 을 호출하는데, 주어진 텍스트에 맞게 크기를 조절하고 그 자 체를 보이게 하는 것이다.

● 기본 Widget 생성 Tkinter 기본 widget생성 Push button Radio button Packer 동작원리 Widget 삽입 메뉴바와 단축기 이벤트와 바인딩 참고서적 from Tkinter import * root=Tk()                        root.mainloop()              . [소스 설명] root=Tk() : 새로운 widget이 열린다.   root.mainloop() : 이 프로그램은 윈도우를 닫을 때 까지 이벤트 루프에 머문다. 이것은 사용자로부터 혹은 윈도우로부터의 이벤트를 처리하는 한다(디스플레이 업데이트를 포함해서).  root 윈도우는 pack하지 않아도 자동적으로 디스플레이된다 [예제결과]

● PUSH button Tkinter 기본 widget생성 Push button Radio button Packer 동작원리 메뉴바와 단축기 이벤트와 바인딩 참고서적 from Tkinter import * class App:  def __init__(self, master):    frame = Frame(master)    frame.pack() # 프레임이 보이게 한다.    self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)    self.button.pack(side=LEFT)    self.w = Button(frame, text="Hello", command=self.say_hi)    self.w.pack() def say_hi(self):    print "hi there, everyone!" root = Tk() app = App(root) root.mainloop() [예제 결과 ]: Hello 버튼실행시 :

● RADIO button(1) Tkinter 기본 widget생성 Push button Radio button from Tkinter import * class App:     def __init__(self, master):          frame = Frame(master)          frame.pack()          MODES = [("Monochrome", "1"), ("Grayscale", "L"), ("True color", "RGB"), ("Color separation", "CMYK")]   # 스트링 변수 생성         self.v = StringVar()         self.v.set("L") # 초기값 설정         for text, mode in MODES: # MODES의 터플에 라디오버튼 생성 b = Radiobutton(frame, text=text, variable=self.v, value=mode, command=self.rb)    b.pack(anchor=W, fill='x') # fill='x' : 버튼을 x축 끝까지 채워라      self.w = Label(master, text=self.v.get())        self.w.pack()     def rb(self):        self.w.configure(text=self.v.get())   root = Tk() app = App(root) root.mainloop() Tkinter 기본 widget생성 Push button Radio button Packer 동작원리 Widget 삽입 메뉴바와 단축기 이벤트와 바인딩 참고서적

● RADIO button(2) Tkinter 기본 widget생성 Push button Radio button [소스설명] Packer 동작원리 Widget 삽입 메뉴바와 단축기 이벤트와 바인딩 참고서적 [소스설명] 터플의 리스트를 만든다 (표시할 문자열, 변수 값) MODES = [("Monochrome", "1"),   ("Grayscale", "L"),   ("True color", "RGB"),    ("Color separation", "CMYK")]   먼저 버튼 옆에 표시할 문자열과 그 버튼이 선택되었을 때 변수가 취할 값의 터플의 리스트(MODES)를 만든다. 다음으로는 변수를 생성한다. 이번에는 문자열 변수(v)를 생성하고 버튼이 선택되면 문자열 값이 변수에 저장되도록 한다. 초기 값을 v.set('L') 설정한다. [예제결과] If > b = Radiobutton(indicatoron=0, text=text,variable=self.v, value=mode,command=self.rb)   

● Packer 동작 원리 Tkinter 기본 widget생성 Push button Radio button 메뉴바와 단축기 이벤트와 바인딩 참고서적 Packer : '짐을 싸다‘ 라는 뜻이 있으므로, 상자의 왼쪽부터 물건을 놓는다고 생각하면 쉬울 것이다. 수평배치 from Tkinter import * root = Tk()   widget1 = Button(root, text="Widget1") widget2 = Button(root, text="Widget2") widget3 = Button(root, text="Widget3")   widget1.pack(side=LEFT) widget2.pack(side=LEFT) widget3.pack(side=LEFT)   root.mainloop() [예제결과] If > widget1.pack(side=TOP) widget2.pack(side=TOP) widget3.pack(side=TOP)

● Widget 삽입/채우기 Tkinter 기본 widget생성 Push button Radio button Widget 삽입 어떤 위젯다음에 자신의 위젯을 삽입할 경우 after를 사용 ex) widget1.pack(after=widget) 어떤 위젯앞에 자신의 위젯을 삽입할 경우 before를 사용 ex) widget1.pack(before=widget) Tkinter 기본 widget생성 Push button Radio button Packer 동작원리 Widget 삽입 메뉴바와 단축기 이벤트와 바인딩 참고서적 Widget 채우기 pack method를 호출할때 fill=X, fill=Y 를 사용하여 각 축을 기준으로 위젯들을 크게하여 맞춘다. [Widget 삽입 예제결과] [Widget 채우기 예제결과]

● 메뉴바와 단축기(1) Tkinter 기본 widget생성 Push button Radio button Packer 동작원리 from Tkinter import * def print_msg(msg):    w.configure(text=msg) def menu_new(event=None):    print_msg("New called") def menu_open(event=None):    print_msg("Open called") def menu_about(event=None):    print_msg("About called") def menu_exit(event=None):    root.quit ()    root.destroy() root=Tk() #creat menu menu=Menu(root)                         # 최상위 윈도우 위젯.menu를 부모로하는 filemenu root.config(menu=menu)               # root에게 menu 객체를 알려준다. Tkinter 기본 widget생성 Push button Radio button Packer 동작원리 Widget 삽입 메뉴바와 단축기 이벤트와 바인딩 참고서적

● 메뉴바와 단축기(2) Tkinter 기본 widget생성 Push button Radio button Packer 동작원리 이벤트와 바인딩 참고서적 w=Label(root, text="Hello world!", width=50, height=3)   # 초기화면에 띄어질 Label 함수. w.pack() filemenu=Menu(menu)             # menu를 부모로 하는 새로운 객체 메뉴 filemenu를 만든다. menu.add_cascade(label="File", menu=filemenu)        # menu 객체에 filemenu를 추가한다. filemenu.add_command(label="New",underline=0,accelerator="Ctrl+N",command=menu_new)                  # 일반메뉴 추가. filemenu.add_command(label="Open",underline=0,accelerator="Ctrl+O",command=menu_open) filemenu.add_separator()          #선으로 구분해준다. filemenu.add_command(label="Exit",underline=1,accelerator="Alt+x“,command=menu_exit) helpmenu=Menu(menu)          # menu를 부모로 하는 새로운 객체 메뉴 helpmenu를 만든다. menu.add_cascade(label="Help", menu=helpmenu) helpmenu.add_command(label="About", command=menu_about) root.bind("<Control-n>",menu_new) root.bind("<Control-o>",menu_open) root.bind("<Alt-Key-x>",menu_exit) root.mainloop()

● Event and Bindings 모든 위젯은 bind 메써드를 이용하여 이벤트를 메써드나 함수에 연결 시킬 수 있다. 만일 event에 해당하는 이벤트가 발생하면 ha ndler가 호출된다. 형식) widget.bind(event.handler) Tkinter 기본 widget생성 Push button Radio button Packer 동작원리 Widget 삽입 메뉴바와 단축기 이벤트와 바인딩 참고서적 Event의 종류 <Button-1> : 마우스버튼이 위젯 위에서 눌려짐. 1은 왼쪽, 2는 가운데, 3은 오른쪽 버튼이다. <B1-Motion> : 버튼이 1이 눌린상태로 마우스가 움직인다. <Enter> : 마우스 포인터가 위젯 상으로 이동했다. <Leave> : 마우스 포인터가 위젯을 벗어났다. <Shift-Up> : 사용자가 시프트키를 누른 상태에서 위로 화살표 버튼을 누른다. <Configure> : 위젯의 크기가 변했다. 새로운 위젯의 크기는 event객체의 width,height 멤버로 주어진다. Event의 객체 <Widget> : 이벤트를 발생시킨 위젯. 이름이 아닌 Tkinter 위젯 인스턴스이다. <x,y> : 현재 마우스의 위치 <char> : 문자코드 스트링으로 전달 <keysym> : 키 심볼 <keycode> : 키 코드 <width,height>: 위젯의 새로운 크기(픽셀)

● 참고서적 및 사이트 Programming Python 2nd Edition (Mark Lutz, O’REILLY®) Tkinter 기본 widget생성 Push button Radio button Packer 동작원리 Widget 삽입 메뉴바와 단축기 이벤트와 바인딩 참고서적 Programming Python 2nd Edition (Mark Lutz, O’REILLY®) -http://www.pythonware.com/library/tkinter /introduction/index.htm Teach your self Python in 24 hours (SAMS)