카테고리 없음

파이썬 Tkinter 대화 상자(Dialogs), 파일 대화 상자(File Dialogs) 사용법

working for you 2023. 6. 13. 19:55
반응형

Tkinter를 사용하면 다양한 다이얼로그(Dialogs)와 파일 파일열기창(File Dialogs)를 만들 수 있습니다. 이 글에서는 Tkinter의 대화 상자(Dialogs)와 파일 대화 상자(File Dialogs)를 사용하는 방법을 소개하고, 사용자와 상호 작용하고 파일을 처리하는 데 필요한 다양한 기능을 구현하는 방법을 설명합니다.

 

[목차]
1. 대화 상자(Dialogs) 사용하기
2. 파일 대화 상자(File Dialogs) 사용하기
3. 예제: 이미지(사진) 뷰어 프로그램 만들기
4. 결론 및 의견

 

 

 

 

 

 

1. 대화 상자(Dialogs) 사용하기

대화 상자는 사용자와 상호 작용하여 정보를 입력하거나 메시지를 표시하는 데 사용됩니다. Tkinter에서는 다음과 같은 대화 상자를 생성할 수 있습니다.

1.1. 메시지 대화 상자(Message Dialogs)

메시지 대화 상자는 간단한 메시지를 표시하는 데 사용됩니다. 예를 들어, 정보 메시지, 경고 메시지, 오류 메시지 등을 표시할 수 있습니다. Tkinter에서는 messagebox 모듈을 사용하여 메시지 대화 상자를 생성합니다. 다음은 messagebox를 사용한 예입니다.

from tkinter import messagebox

# 정보 메시지 대화 상자
messagebox.showinfo("정보", "파일이 성공적으로 저장되었습니다.")

# 경고 메시지 대화 상자
messagebox.showwarning("경고", "파일을 찾을 수 없습니다.")

# 오류 메시지 대화 상자
messagebox.showerror("오류", "알 수 없는 오류가 발생했습니다.")

 

실행화면

 

 

 

 

 

1.2. 질문 대화 상자(Ask Dialogs)

질문 대화 상자는 사용자로부터 입력을 받는 데 사용됩니다. 예를 들어, 사용자의 이름이나 비밀번호를 입력받는 경우 등이 있습니다. Tkinter에서는 simpledialog 모듈을 사용하여 질문 대화 상자를 생성합니다. 다음은 simpledialog를 사용한 예입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from tkinter import Tk, simpledialog
 
# Create a Tkinter root window
root = Tk()
root.withdraw()  # Hide the root window
 
# String input dialog
name = simpledialog.askstring("Name""Please enter a name")
 
# Integer input dialog
age = simpledialog.askinteger("Age""Please enter your age")
 
# Boolean input dialog
is_admin = simpledialog.askboolean("Admin""Please select whether you are an administrator")
 
root.mainloop()
cs

 

실행화면

 

 

 

 

 

2. 파일 대화 상자(File Dialogs) 사용하기

파일 대화 상자는 파일을 열거나 저장하기 위해 사용됩니다. Tkinter에서는 filedialog 모듈을 사용하여 파일 대화 상자를 생성합니다. 다음은 filedialog를 사용한 예입니다.

from tkinter import filedialog

# 파일 열기 대화 상자
file_path = filedialog.askopenfilename()

# 파일 저장 대화 상자
file_path = filedialog.asksaveasfilename()

# 특정 유형의 파일만 필터링하여 열기 대화 상자
file_path = filedialog.askopenfilename(filetypes=(("텍스트 파일", "*.txt"), ("모든 파일", "*.*")))

 

실행화면

 

 

 

 

 

3. 예제: 이미지(사진) 뷰어 프로그램 만들기

Tkinter를 사용하여 이미지 뷰어를 만들어 보겠습니다. 이미지 뷰어는 파일 대화 상자를 사용하여 이미지를 열고, 메시지 대화 상자를 사용하여 이미지 정보를 표시합니다.

from tkinter import *
from tkinter import filedialog, messagebox
from PIL import Image, ImageTk

class ImageViewer:

    def __init__(self, master):
        self.master = master
        master.title("이미지 뷰어")

        self.canvas = Canvas(master, width=500, height=500)
        self.canvas.pack()

        self.img = None

        menu = Menu(master)
        master.config(menu=menu)

        file_menu = Menu(menu)
        menu.add_cascade(label="파일", menu=file_menu)
        file_menu.add_command(label="열기", command=self.open_image)
        file_menu.add_separator()
        file_menu.add_command(label="종료", command=master.quit)

        help_menu = Menu(menu)
        menu.add_cascade(label="도움말", menu=help_menu)
        help_menu.add_command(label="정보", command=self.show_info)

    def open_image(self):
        file_path = filedialog.askopenfilename(filetypes=(("이미지 파일", "*.jpg;*.jpeg;*.png"), ("모든 파일", "*.*")))

        if file_path:
            try:
                self.img = Image.open(file_path)
                self.photo = ImageTk.PhotoImage(self.img)
                self.canvas.create_image(0, 0, anchor=NW, image=self.photo)
            except:
                messagebox.showerror("오류", "이미지를 열 수 없습니다.")

    def show_info(self):
        if self.img:
            messagebox.showinfo("이미지 정보", f"이미지 크기: {self.img.size}\\\\n이미지 모드: {self.img.mode}")
        else:
            messagebox.showinfo("이미지 정보", "이미지가 열려 있지 않습니다.")

root = Tk()
app = ImageViewer(root)
root.mainloop()

 

실행화면

 

 

 

 

 

4. 결론 및 의견

Tkinter의 대화 상자(Dialogs)와 파일 대화 상자(File Dialogs)를 사용하는 방법을 소개했습니다. 이를 통해 사용자와 상호 작용하고 파일을 처리하는 데 필요한 다양한 기능을 구현할 수 있을 것입니다. 또한, 예제를 통해 이미지 뷰어를 만드는 방법을 살펴보았습니다.

 

 

 

 

 

 

[관련글]

[파이썬 (pythoon)] - 파이썬 벽돌깨기 게임 만들기 - python tkinter game

[정보 및 유용한 팁] - 챗GPT 란? (CHAT GPT 사용)

 

챗GPT 란? (CHAT GPT 사용)

챗GPT 란 무엇일까요? 요즘 너무 핫하다 못해 마치 옆에 있는 선생님처럼 느껴지는 이 인공지능 AI에 대해서 이해하기 쉽게 정리하려 합니다. 결론적으로 챗GPT에게 질문을 하면, 형식적인 답이 아

2toy.net

[파이썬 (pythoon)] - Tkinter ttk style - 테마, 버튼 디자인, 레이블 디자인 외

 

Tkinter ttk style - 테마, 버튼 디자인, 레이블 디자인 외

Tkinter는 다양한 위젯을 제공하지만, 기본적인 스타일로는 비교적 단조로운 외관을 가지고 있습니다. 다이나믹한 느낌을 주기 위해서는 Tkinter의 ttk(Themed Tkinter) 모듈을 활용하여 버튼 또는 레이

2toy.net

[파이썬 (pythoon)] - 파이썬 python 무엇을 위해 배우는가? - 파이선

 

파이썬 python 무엇을 위해 배우는가? - 파이선

파이선 ( python ), 제가 이 프로그래밍을 공부한 이유는 업무자동화가 목적이였습니다. 온라인 판매 사업을 하다보니, 가장기본적이 주문수집을 함에 있어서 엑셀로는 너무 불편하고 실수가 잦았

2toy.net

반응형