두근두근 파이썬 수업 10장 tkinter로 GUI 만들기.

Slides:



Advertisements
Similar presentations
6 장 객체 - 지향 설계 ③. 목차 GUI 레이아웃  전화기 키 패드 전화기 키 패드 전화기 키 패드 모양의 GUI 를 만드는 Telephone.java, TelephonePanel.java 를 완성해 보자.  주석을 참고하여 TelephonePanel.java.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
1 Lotte EDI 환경 설정 매뉴얼 LLTTTTEE Always with You OO.
Term project. Touch-screen 활용 그림판 –Touch-screen 을 입력장치로 하여 LCD 상에 그림을 그리는 프로그램 – 터치 입력을 절대 좌표로 받는 디바이스 /dev/touch 를 만들어 응용 프 로그램에서 수행하도록 함. –User interface.
한국기술교육대학교 아두이노 기반 펌웨어 개발 (기본과정) 5일차 강사: 김영준 목원대학교 겸임교수.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
순차, 조건, 반복 이점숙 농대 뒷편 언덕을 넘어가며 같은 문제 다르게 해결 순차, 조건, 반복 이점숙
순차, 조건, 반복 이점숙 같은 문제 다르게 해결하기 순차, 조건, 반복 이점숙
149개의 실습예제로 배우는 Flash 8.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Image & Video processing
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
최윤정 Java 프로그래밍 클래스 상속 최윤정
컴퓨터 프로그래밍 실습 #7 제 4 장 GUI 클래스 작성.
윤 홍 란 다이알로그(대화상자) 윤 홍 란
(수) Python Essential 세미나 Gui 프로그래밍 - Tkinter 발표자 : 박승기.
제 4 장 클래스 작성 Lab 4- 2.
Chapter 13 GUI 프로그래밍 01 GUI 화면 구성 02 GUI 이벤트 처리 03 GUI 메뉴와 툴바 예제 모음 요약
19장 스윙과 이벤트 처리 Section 1 스윙 컴포넌트 Section 2 이미지 아이콘과 라벨
2017년 하계 경성 프로그래밍 교육 (5/5) 경성대학교 공과대학 소프트웨어 학과.
마우스(Mouse) 다루기 컴퓨터응용 및 실습 I.
Communication and Information Systems Lab. 황재철
1. C++ 시작하기.
제3장 X 윈도우.
두근두근 파이썬 수업 13장 객체란 무엇인가요?.
두근두근 파이썬 수업 13장 객체란 무엇인가요?.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
윈도 프로그래밍.
Power Java 제14장 배치 관리자.
컴퓨터 프로그래밍 : 실습3 2장 데이터와 식.
두근두근 파이썬 수업 14장 프로젝트 II.
스크래치 언어 이해 스크래치 이용법 습득 고양이가 말을 하며 움직이는 예제 작성
CHAP 12. 리소스와 보안.
10장 컴퓨터 기반 데이터 획득 응용 프로그램 LabVIEW 사용법
JAVA Canvas Swing.
인터넷응용프로그래밍 JavaScript(Intro).
비주얼 프로그래밍 1분반 화/목.
반응형 웹 프로젝트
10장 tkinter로 GUI 만들기.
30강 JAVA 그래픽 JAVA GUI(Graphic User Interface)란? AWT 컴포넌트? Swing 컴포넌트?
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
LCD Controller Colorbar
HTML5 Canvas 태그 92팸 유승연 안동찬 엄태인 김영재.
CHAP 5. 레이아웃.
그래픽 모듈 편집.
Moving Control in Web using Ajax Toolkit
웹디자인
1차시: 낮과 밤이 생기는 원리 지구과학
1. 스크립트 작성 마법사 2. NSIS 스크립트 컴파일
두근두근 파이썬 수업 14장 프로젝트 II.
Mariadb JDBC PROGRAMMING2
11. 어댑터뷰 제목. 11. 어댑터뷰 제목 리스트뷰와 그리드뷰 활용법을 배운다. 갤러리와 스피너의 사용법을 익힌다.
오토베이스9 사용자 라이브러리 오토베이스 교육센터 그래픽 모듈 설정과 화면전환에 대하여 자세히 알아본다. <목차>
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
PART 1 앱 인벤터 프로젝트 12 원격 로봇. PART 1 앱 인벤터 프로젝트 12 원격 로봇.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
시스템 인터페이스 Lab#5 쉡 실습.
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
메뉴(Menu) 컴퓨터응용 및 실습 I.
12 그리드 시스템.
함수, 모듈.
9 브라우저 객체 모델.
멀티미디어 활용 -플래시 CS3 류 정 남.
Power Java 제14장 배치 관리자.
Spring, 2019 School of CSE Pusan National University
6 객체.
Intelligent software Lab. 전재원
Presentation transcript:

두근두근 파이썬 수업 10장 tkinter로 GUI 만들기

이번 장에서 만들 프로그램 (1) 온도 변환 프로그램을 GUI 버전으로 다시 제작해보자 (2) 마우스를 사용하여 화면에 그림을 그리는 프로그램을 작성해보자.

tkinter란? tkinter는 파이썬에서 그래픽 사용자 인터페이스(GUI: graphical user interface)를 개발할 때 필요한 모듈

tkinter의 유래 tkinter는 예전부터 유닉스 계열에서 사용되던 Tcl/Tk 위에 객체 지향 계층을 입힌 것이다. Tk는 John Ousterhout에 의하여 Tcl 스크립팅 언어를 위한 GUI 확장으로 개발

Tkinter의 위젯들

단순 위젯과 컨테이너 위젯 단순 위젯: Button, Canavs, Checkbutton, Entry, Label, Message 등이 여기에 속한다. 컨테이너 컴포넌트: 다른 컴포넌트를 안에 포함할 수 있 는 컴포넌트로서 Frame, Toplevel, LabelFrame, PanedWindow 등이 여기에 속한다.

버튼이 있는 윈도우를 생성해보자 하나의 버튼이 있는 윈도우를 생성해보자 from tkinter import * window = Tk() button = Button(window, text="클릭하세요!") button.pack() window.mainloop()

엔트리와 레이블 위젯도 사용해보자. from tkinter import * window = Tk() l1 = Label(window, text="화씨") l2 = Label(window, text="섭씨") l1.pack() l2.pack() e1 = Entry(window) e2 = Entry(window) e1.pack() e2.pack() b1 = Button(window, text="화씨->섭씨") b2 = Button(window, text="섭씨->화씨") b1.pack() b2.pack() window.mainloop( )

배치 관리자 압축(pack) 배치 관리자 격자(grid) 배치 관리자 절대(place) 배치 관리자

격자 배치 관리자 from tkinter import * window = Tk() l1 = Label(window , text="화씨") l2 = Label(window, text="섭씨") l1.grid(row=0, column=0) l2.grid(row=1, column=0) e1 = Entry(window) e2 = Entry(window) e1.grid(row=0, column=1) e2.grid(row=1, column=1) b1 = Button(window, text="화씨->섭씨") b2 = Button(window, text="섭씨->화씨") b1.grid(row=2, column=0) b2.grid(row=2, column=1) window.mainloop()

버튼 이벤트 처리 from tkinter import * def process(): print("안녕하세요?") window = Tk() button = Button(window, text="클릭하세요!", command=process) button.pack() window.mainloop()

버튼 이벤트 처리

버튼 이벤트 처리 from tkinter import * def process(): e2.insert(0, "100") window = Tk() l1 = Label(window , text="화씨") l2 = Label(window, text="섭씨") l1.grid(row=0, column=0) l2.grid(row=1, column=0) e1 = Entry(window) e2 = Entry(window) e1.grid(row=0, column=1) e2.grid(row=1, column=1) b1 = Button(window, text="화씨->섭씨", command=process) b2 = Button(window, text="섭씨->화씨") b1.grid(row=2, column=0) b2.grid(row=2, column=1) window.mainloop()

버튼 이벤트 처리 from tkinter import * def process(): temperature = float(e1.get()) mytemp = (temperature-32)*5/9 e2.insert(0, str(mytemp)) window = Tk() l1 = Label(window , text="화씨") l2 = Label(window, text="섭씨") l1.grid(row=0, column=0) l2.grid(row=1, column=0) e1 = Entry(window) e2 = Entry(window) e1.grid(row=0, column=1) e2.grid(row=1, column=1) b1 = Button(window, text="화씨->섭씨", command=process) b2 = Button(window, text="섭씨->화씨") b1.grid(row=2, column=0) b2.grid(row=2, column=1) window.mainloop()

버튼 이벤트 처리 from tkinter import * def process(): temperature = float(e1.get()) mytemp = (temperature-32)*5/9 e2.insert(0, str(mytemp)) window = Tk() l1 = Label(window , text="화씨", font='helvetica 16 italic') l2 = Label(window, text="섭씨", font='helvetica 16 italic') l1.grid(row=0, column=0) l2.grid(row=1, column=0) e1 = Entry(window, bg="yellow", fg="white") e2 = Entry(window, bg="yellow", fg="white") e1.grid(row=0, column=1) e2.grid(row=1, column=1) b1 = Button(window, text="화씨->섭씨", command=process) b2 = Button(window, text="섭씨->화씨") b1.grid(row=2, column=0) b2.grid(row=2, column=1) window.mainloop()

절대 위치 배치 관리자 from tkinter import * window = Tk() w = Label(window, text="박스 #1", bg="red", fg="white") w.place(x=0, y=0) w = Label(window, text="박스 #2", bg="green", fg="black") w.place(x=20, y=20) w = Label(window, text="박스 #3", bg="blue", fg="white") w.place(x=40, y=40) window.mainloop()

이미지 표시 프로그램 from tkinter import * def change_img(): path = inputBox.get() img = PhotoImage(file = path) imageLabel.configure(image = img) imageLabel.image = img window = Tk() photo = PhotoImage(file="wl.gif") imageLabel = Label(window, image=photo) imageLabel.pack() inputBox = Entry(window) inputBox.pack() button = Button(window, text='Submit', command=change_img) button.pack() window.mainloop()

MyPaint 프로그램 #1 다음과 같이 마우스를 움직여서 화면에 그림을 그리는 윈 도우의 그림판과 비슷한 프로그램을 작성해보자.

캔버스 위젯 tkinter에서 그림을 그리려면 캔버스(canvas)라는 위젯이 필요하다. Canvas 위젯을 사용하면 많은 그래픽 기능을 사용할 수 있다. window = Tk() ... canvas = Canvas(window, width=300, height=200) canvas.create_oval(x0, y0, x1, y1, option, ...)

MyPaint 프로그램 #2 from tkinter import * def paint(event): x1, y1 = ( event.x-1 ), ( event.y+1 ) x2, y2 = ( event.x-1 ), ( event.y+1 ) canvas.create_oval( x1, y1, x2, y2, fill = "black") window = Tk() canvas = Canvas(window) canvas.pack() canvas.bind("<B1-Motion>", paint) window.mainloop()

MyPaint 프로그램 #3 앞의 MyPaint 프로그램에서 색상을 변경할 수 있도록 하 여보자. 캔버스 위젯 아래에 버튼 “빨강색”을 추가하고 이 버튼을 누르면 색상이 빨강색으로 변경되게 하자.

from tkinter import * mycolor = "blue" def paint(event): x1, y1 = ( event.x-1 ), ( event.y+1 ) x2, y2 = ( event.x-1 ), ( event.y+1 ) canvas.create_oval( x1, y1, x2, y2, fill = mycolor) def change_color(): global mycolor mycolor="red" window = Tk() canvas = Canvas(window) canvas.pack() canvas.bind("<B1-Motion>", paint) button = Button(window, text="빨강색", command=change_color) button.pack() window.mainloop()

계산기 프로그램 #1 우리는 다음과 같은 계산기를 작성해보자. 약간 어려운 내용도 있어서 입문자인 경우에는 건너뛰어도 된다.

사용자 인터페이스 작성 계산기는 격자 배치 관리자를 사용 하면 될 것이다. 그리 고 버튼과 엔트리 위젯만 있으면 된다.

계산기 프로그램 #2 from tkinter import * window = Tk() window.title("My Calculator") display = Entry(window, width=33, bg="yellow") display.grid(row=0, column=0, columnspan=5)

계산기 프로그램 #3 button_list = [ '7', '8', '9', '/', 'C', '4', '5', '6', '*', ' ', '1', '2', '3', '-', ' ', '0', '.', '=', '+', ' ' ] row_index = 1 col_index = 0 for button_text in button_list: Button(window, text=button_text, width=5).grid(row=row_index, column=col_index) col_index += 1 if col_index > 4: row_index += 1

계산기 프로그램 #4 from tkinter import * window = Tk() window.title("My Calculator") display = Entry(window, width=33, bg="yellow") display.grid(row=0, column=0, columnspan=5) button_list = [ '7', '8', '9', '/', 'C', '4', '5', '6', '*', ' ', '1', '2', '3', '-', ' ', '0', '.', '=', '+', ' ' ] row_index = 1 col_index = 0 for button_text in button_list: Button(window, text=button_text, width=5).grid(row=row_index, column=col_index) col_index += 1 if col_index > 4: row_index += 1

이번 장에서 배운 것 리스트는 항목들을 모아둔 곳이다. 리스트의 항목은 어떤 것이든 가능하다. 공백 리스트를 만들고 append()를 호출하여서 코드로 항 목을 추가할 수 있다. 딕션너리는 키와 값으로 이루어진다. 딕션너리에 키를 제시하면 값을 반환한다.

Q & A