08-3. GUI 응용 프로그램
- 사용자들이 단순히 마우스 클릭만으로도 DB를 입력하거나 조회하는 프로그램을 만드는 것이 목적
✅ GUI
- Graphical User Interface
GUI(그래픽 사용자 인터페이스)는 사용자가 그림, 아이콘, 버튼 등을 사용하여 소프트웨어와 상호 작용하는 방식을 제공하는 인터페이스입니다. 이는 텍스트 기반의 명령줄 인터페이스(CLI)와 대조적입니다. GUI는 일반적으로 마우스, 키보드 등을 사용하여 소프트웨어를 조작하는 데 사용됩니다. 여기에서 간략하게 GUI에 대해 알려드리겠습니다.
- 구성 요소:
- 윈도우(Window): GUI 애플리케이션의 기본 창. 여러 개의 창을 포함할 수 있습니다.
- 버튼(Button): 사용자가 클릭할 수 있는 단추.
- 입력 상자(Input Box): 텍스트를 입력할 수 있는 상자.
- 라벨(Label): 텍스트를 표시하는 데 사용되는 라벨.
- 체크박스(Checkbox) 및 라디오 버튼(Radio Button): 사용자가 선택할 수 있는 옵션을 제공하는 컨트롤.
- 이벤트 처리:
- GUI 애플리케이션은 사용자 동작에 응답하기 위해 이벤트 기반으로 동작합니다. 예를 들어, 버튼 클릭, 키보드 입력 등의 이벤트가 발생할 때 특정 동작을 수행할 수 있습니다.
- 프레임워크 및 라이브러리:
- 많은 프로그래밍 언어에서 GUI 개발을 위한 프레임워크나 라이브러리를 제공합니다. 예를 들어, Python에서는 Tkinter, PyQt, Kivy 등이 GUI 개발에 사용됩니다.
- 이식성과 사용 편의성:
- GUI는 일반적으로 다양한 운영 체제에서 동일한 방식으로 작동하므로 사용자는 특정 운영 체제에 대한 교육을 받을 필요가 없습니다.
- 디자인 원칙:
- GUI 디자인은 사용자 경험(UX)을 고려해야 합니다. 직관적이고 사용하기 쉬운 디자인이 중요합니다.
- 웹 기반 GUI:
- 최근에는 웹 기술을 이용하여 웹 애플리케이션에서도 GUI를 개발하는 추세가 있습니다. JavaScript와 HTML을 이용한 프레임워크 및 라이브러리들이 많이 사용되고 있습니다.
프로그래밍 언어에 따라 GUI 개발 방법이 다를 수 있으며, 언어 및 프레임워크에 따라서는 시각적인 디자인 도구를 사용하여 GUI를 만들 수도 있습니다. GUI 프로그래밍은 사용자와 소프트웨어 간의 상호 작용을 향상시키고 사용자 친화적인 환경을 제공하는 데 중요한 역할을 합니다.
- 지난번과 비슷하지만 이번에는 GUI(윈도우창)을 통해 사용하도록
✅ tkinter
- 파이썬에서 제공하는 라이브러리
- 간단하게 윈도우 창을 만들게 도와줌
tkinter는 Python에서 기본적으로 제공되는 GUI(Graphical User Interface)를 개발하기 위한 표준 라이브러리입니다. Tkinter는 Tk GUI 툴킷의 Python 인터페이스로, 많은 플랫폼에서 동작하며 사용하기 쉽고 간단한 GUI를 만들 수 있도록 설계되어 있습니다. Tkinter는 Python 설치 시 함께 제공되기 때문에 별도의 설치가 필요하지 않습니다.
다음은 Tkinter에 대한 간단한 정보입니다:
- Tkinter 모듈 불러오기: Tkinter 모듈을 사용하려면 다음과 같이 불러와야 합니다.
import tkinter as tk
2. 기본적인 Tkinter 윈도우 만들기: Tkinter를 사용하여 기본 윈도우를 만들기 위해서는 Tk() 클래스를 인스턴스화하고, 이를 통해 윈도우 객체를 생성합니다.
root = tk.Tk()
3. 위젯(Widget): Tkinter에서는 여러 가지 위젯을 사용하여 GUI를 구성합니다. 몇 가지 기본적인 위젯에는 버튼, 레이블, 텍스트 상자, 프레임 등이 있습니다.
label = tk.Label(root, text="Hello, Tkinter!")
button = tk.Button(root, text="Click me!", command=callback_function)
entry = tk.Entry(root)
4. 이벤트 처리: Tkinter에서는 버튼 클릭, 키 입력 등의 이벤트에 대한 처리를 지원합니다. 콜백 함수를 사용하여 이벤트에 대한 특정 동작을 정의할 수 있습니다.
def callback_function():
print("Button Clicked!")
button = tk.Button(root, text="Click me!", command=callback_function)
5. 레이아웃 관리자: Tkinter는 레이아웃 관리자를 사용하여 위젯을 배치합니다. pack(), grid(), place() 등의 메서드를 사용하여 위젯의 위치를 지정할 수 있습니다.
label.pack()
button.pack()
entry.pack()
6. 이벤트 루프: Tkinter 애플리케이션은 메인 이벤트 루프를 가지고 있어야 합니다. 이 루프는 사용자의 입력을 감지하고 이벤트를 처리합니다.
root.mainloop()
Tkinter를 사용하면 간단한 GUI 애플리케이션을 쉽게 만들 수 있으며, 다양한 예제와 튜토리얼이 온라인에서 사용 가능합니다.
👉🏻 GUI 기본 프로그래밍
- tkinter 라이브러리를 사용하기 위해 임포트(무조건)
- root = Tk() 도 윈도우창을 만들기 위해 필수적
- 윈도우 창이 하나 생성됨
- 이제 안에 내용만 만들면 됨
🎮 창 이름과 크기
🎮Label
- root는 만든 창, 거기에 text에 담긴 글자를 써라
- 글씨체, 글씨 크기, 배경색, 글자색 지정
- pack()하면 글자들이 화면에 출력됨
🎮 메시지 박스
- 메시지 박스를 만들기 위해 해당 라이브러리를 import
- 버튼을 만들어줌, 버튼에 들어갈 글자와 색상 등을 설정
- 버튼은 클릭하면 어떤 작업을 해줘야하기 때문에 command를 설정해준다
- 버튼을 누르면 실행될 함수
- 해당 함수를 미리 위에 만들어둬야 한다
- 메시지박스를 출력하는 함수
- expand = 1 하면 화면 중간에 출력하라는 의미
🎮 여러개 버튼 배치
- LEFT로 설정해서 왼쪽부터 나온 것
- RIGHT로 설정하면 오른쪽부터 나옴
🎮 프레임
- Frame: 눈에는 보이지 않는 구역을 나눔
- 윗 부분을 upFrame
- 아래 부분을 downFrame
- 윗 부분에는 에딧박스(Entry)를 넣어줌
- 아래 부분에는 리스트박스
- 처음엔 아무것도 없다가 "하나"가 들어가고 "둘"이 들어가고 ...
🎮 위젯 사이 여백 두기
🎮 최종 버전
- 아래 만들어진 에딧박스에 입력하고 입력 버튼을 누르면 insertData()함수에 따라 입력이 된다
- 조회 할 때는 화면을 나눠 내기 때문에 약간의 편법을 쓴 것
- 화면을 만들고
- Frame을 통해 구간을 나눈다
- 윗부분에는 에딧박스 4개
- 버튼 2개 (입력/조회)
- 입력버튼을 누르면 insertData() 함수가 실행됨
- 조회 버튼을 누르면 selectData()함수가 실행됨
- 리스트박스에 4개 입력
* 조회하면
* 입력하면
* 다시 조회하면
출처: https://youtu.be/gCeSU3ByGVs?si=QRALa_B_PdpxiGbK
'MySQL > 혼공SQL' 카테고리의 다른 글
22강. 파이썬과 MySQL 연동하기 (1) | 2023.12.13 |
---|---|
21강. SQL과 파이썬 연결을 위한 파이썬 설치하기 (0) | 2023.12.13 |
20강. 자동으로 실행되는 트리거(trigger)의 개념과 트리거를 활용하여 데이터 백업하는 방법 (0) | 2023.12.13 |
19강. 스토어드 함수와 커서의 개념, 커서(cursor)의 단계별 실습 방법 (0) | 2023.12.11 |
18강. 스토어드 프로시저(stored procedure)의 개념과 사용 방법(입출력 매개변수의 활용 방법) (1) | 2023.12.06 |