GUI
- GUI는 윈도에 그래픽 환경으로 제공되는 화면을 통틀어서 말합니다.
- 파이썬을 통해 윈도에 출력되는 GUI 응용 프로그램을 작성할 수 있습니다.
TKINTER
- TKINTER를 활용하면 흔히 사용하는 엑셀, 한글 등 응용프로그램과 비슷한 형태의 프로그램을 만들 수 있습니다.
- SQL을 전혀 모르는 사용자도 클릭만으로 데이터 입력,조회가 가능하도록 할 수 있습니다.
GUI 기본 프로그래밍
- 아래 코드는 GUI의 가장 기본적인 윈도 화면 구성입니다.
- 여기서 tkinter는 GUI 관련 모듈을 제공해주는 표준 윈도 라이브러리입니다.
from tkinter import *
root = Tk()
#화면 구성
root.mainloop()
위의 코드 화면 구성에는 제목과 크기등을 지정할 수 있습니다.
from tkinter import *
root = Tk()
root.title("GUI 연습")
root.geometry("400x200")
root.mainloop()
라벨
- 라벨은 문자를 표현할 수 있는 위젯입니다.
- 위젯은 윈도에 나오는 버튼, 텍스트, 라디오 버튼, 이미지 등을 통합해서 지칭하는 용어입니다.
- label(부모윈도, 옵션...) 형식을 사용합니다.
from tkinter import *
root = Tk()
root.geometry("300x100")
label1 = Label(root, text="오늘은")
label2 = Label(root, text="마지막 날 입니다.", font=("궁서체", 30), bg="black", fg="white")
label1.pack()
label2.pack()
root.mainloop()
버튼
- 버튼은 마우스로 클릭하면 지정한 작업이 실행되도록 사용하는 위젯입니다.
- Button(부모윈도, 옵션..) 형식을 사용합니다.
- 라벨과의 차이점으로 command 옵션으로 사용자가 버튼을 눌렀을 때 지정한 작업을 처리한다는 점입니다.
from tkinter import *
from tkinter import messagebox
def clickButton() :
messagebox.showinfo('오늘은', '마지막 날!!!')
root = Tk()
root.geometry("200x200")
button1 = Button(root, text="클릭", fg="red", bg="white", command=clickButton)
button1.pack(expand = 1)
root.mainloop()
위젯의 정렬
- pack() 함수의 옵션 중에서 가로로 정렬하는 방법으로 side=LEFT, RIGHT 방식이 있습니다.
from tkinter import *
root = Tk()
button1 = Button(root, text="날입니다")
button2 = Button(root, text="마지막")
button3 = Button(root, text="오늘은")
button1.pack(side=RIGHT)
button2.pack(side=RIGHT)
button3.pack(side=RIGHT)
root.mainloop()
위젯 사이의 여백 추가
- 위젯 사이의 여백은 padx=픽셀값 또는 pady=픽셀값 방식을 사용합니다.
from tkinter import *
root = Tk()
button1 = Button(root, text="오늘은")
button2 = Button(root, text="마지막")
button3 = Button(root, text="날입니다")
button1.pack(side=TOP, fill=X, padx=10,pady=10)
button2.pack(side=TOP, fill=X, padx=10,pady=10)
button3.pack(side=TOP, fill=X, padx=10,pady=10)
root.mainloop()
프레임, 엔트리, 리스트 박스
- 프레임은 화면을 여러 구역으로 나눌 때 사용합니다.
- 엔트리는 입력상자를 표현합니다.
- 리스트 박스는 목록을 표현합니다.
from tkinter import *
root = Tk()
root.geometry("200x250")
upFrame = Frame(root)
upFrame.pack()
downFrame = Frame(root)
downFrame.pack()
editBox = Entry(upFrame, width = 10, )
editBox.pack(padx = 20, pady = 20)
listbox = Listbox(downFrame, bg = 'white')
listbox.pack()
listbox.insert(END, "오늘은")
listbox.insert(END, "마지막")
listbox.insert(END, "날입니다")
root.mainloop()
모든 코드 종합 후)
'학습단 > SQL 학습단' 카테고리의 다른 글
6주차 완료 (0) | 2023.08.19 |
---|---|
MySQL과 파이썬 연동(개발 환경 준비) (0) | 2023.08.18 |
혼공스 21일차(트리거) (0) | 2023.08.16 |
혼공스 20일차(스토어드 함수와 커서) (0) | 2023.08.15 |
혼공스 19일차(스토어드 프로시저) (0) | 2023.08.14 |