Skip to content
toylee blog · 컴퓨터, 프로그램 정보 공유

toylee blog · 컴퓨터, 프로그램 정보 공유

파이썬 QMessageBox, 다이얼로그, 파일창

toylee, 2023년 05월 20일

PyQt6는 다양한 GUI 요소를 제공하며, 메세지박스(QMessageBox)는 그 중 하나입니다. 메세지박스는 알림 또는 입력 상자와 같은 팝업 창을 말합니다. 파이썬 QMessageBox 외 다이얼로그, 파일창 예제까지 같이 알아보겠습니다.

[목차]

  • 1. 파이썬 QMessageBox 만들기
  • 2. 파이썬 입력 메세지 팝업 만들기 – QInputDialog
  • 3. PyQt6 파일 선택 창 만들기 – QFileDialog
  • 4. 다이얼로그 사용 예제 – 이름, 나이 작성 input
  • 5. 결론 및 의견

1. 파이썬 QMessageBox 만들기

PyQt6를 통해 메세지박스 만드는 방법은 간단합니다. 먼저, 파이썬 QMessageBox모듈을 가져와야합니다. 그런 다음 QMessageBox 클래스의 객체를 만들고 exec_() 메서드를 호출하여 대화 상자를 실행합니다. 아래는 메시지 대화 상자를 만드는 예시입니다.

1
2
3
4
5
6
7
8
9
10
11
from PyQt6.QtWidgets import QApplication, QMessageBox
 
app = QApplication([])
 
msg_box = QMessageBox()
msg_box.setIcon(QMessageBox.Icon.Information)
 
msg_box.setText(“This is the message text.”)
msg_box.setWindowTitle(“Dialog Box Title”)
 
msg_box.exec()
Colored by Color Scripter
cs
파이썬 QMessageBox

QMessageBox 클래스의 객체를 만들고, setIcon() 메서드를 사용하여 아이콘을 설정하고, setText() 메서드를 사용하여 메시지 텍스트를 설정하였습니다. setWindowTitle() 메서드를 사용하여 대화 상자의 제목을 설정하였습니다. 마지막으로, exec_() 메서드를 호출하여 대화 상자를 실행합니다.

2. 파이썬 입력 메세지 팝업 만들기 – QInputDialog

PyQt6를 사용하여 입력 대화 상자를 만드는 것도 간단합니다. QApplication, QInputDialog 사용으로 입력 대화 상자를 만들 수 있습니다. 아래는 간단한 입력 메세지 팝업을 만드는 예시입니다.

1
2
3
4
5
6
7
8
9
10
11
from PyQt6.QtWidgets import QApplication, QInputDialog
 
app = QApplication([])
 
text, ok = QInputDialog.getText(None, “Input Dialog”, “Enter your name:”)
 
if ok:
    print(f“Entered text: {text}”)
else:
    print(“Dialog canceled or closed.”)
 
Colored by Color Scripter
cs
파이썬 QInputDialog

이 코드에서는 PyQt6 라이브러리에서 필요한 모듈 QApplication 및 QInputDialog를 가져옵니다. 애플리케이션을 초기화하기 위해 QApplication 인스턴스를 생성합니다.

파이썬 QInputDialog 1

다음으로 QInputDialog.getText() 메서드를 사용하여 입력 대화 상자를 만듭니다. 첫 번째 인수는 ‘None’으로, 대화 상자가 모달 대화 상자로 표시됩니다. 두 번째 인수는 이 예에서 대화 상자의 제목인 “입력 대화 상자”입니다. 세 번째 인수는 대화 상자에 표시할 메시지입니다.

파이썬 QInputDialog 2

getText() 메서드는 입력된 텍스트를 문자열로 반환하고 사용자가 확인을 클릭했는지 대화 상자를 취소했는지 나타내는 부울 값을 반환합니다. 이 값을 각각 text 및 ok 변수에 할당합니다.

파이썬 QInputDialog 3

그런 다음 ok 값을 확인하여 사용자가 확인을 클릭했는지 확인합니다. ok가 True이면 입력된 텍스트를 처리하고 이 경우에는 출력합니다. ‘ok’가 ‘False’이면 사용자가 취소를 클릭했거나 대화 상자를 닫았음을 의미하며 해당 메시지를 인쇄합니다.

파이썬 QInputDialog 4

3. PyQt6 파일 선택 창 만들기 – QFileDialog

QFileDialog 모듈을 사용하면 파일 선택 창을 만들 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from PyQt6.QtWidgets import QApplication, QFileDialog
 
app = QApplication([])
 
file_dialog = QFileDialog()
file_dialog.setNameFilter(“Text files (*.txt);;All files (*.*)”)
 
if file_dialog.exec() == QFileDialog.DialogCode.Accepted:
    selected_files = file_dialog.selectedFiles()
    print(“Selected file(s):”, selected_files)
else:
    print(“Dialog canceled or closed.”)
 
app.exec()
 
Colored by Color Scripter
cs
  • PyQt6 라이브러리에서 필요한 모듈 QApplication 및 QFileDialog를 가져옵니다. 애플리케이션을 초기화하기 위해 QApplication 인스턴스를 생성합니다.
  • 다음으로 file_dialog라는 QFileDialog 개체를 만듭니다.
QFileDialog
  • setNameFilter() 메서드를 사용하여 파일 필터를 설정합니다. 이 예에서는 확장자가 “.txt”인 텍스트 파일 또는 모든 파일을 선택할 수 있도록 “텍스트 파일(.txt);;모든 파일(.*)”로 설정합니다.
  • 대화 상자를 호출하기 위해 file_dialog의 exec() 메서드를 사용합니다. 사용자가 파일을 선택하고 “열기” 버튼을 클릭하면 file_dialog.exec()가 QFileDialog.DialogCode.Accepted를 반환하고 selectedFiles() 메서드를 사용하여 선택한 파일을 검색할 수 있습니다. 사용자가 대화 상자를 취소하거나 닫으면 file_dialog.exec()는 QFileDialog.DialogCode.Rejected를 반환하고 해당 메시지를 인쇄합니다.
  • 마지막으로 app.exec()를 사용하여 애플리케이션 이벤트 루프를 실행하여 애플리케이션을 시작하고 이벤트 루프가 종료될 때까지 계속 실행합니다.

4. 다이얼로그 사용 예제 – 이름, 나이 작성 input

PyQt6 라이브러리를 사용하여 레이아웃, 입력 상자, 레이블 및 확인 버튼이 있는 QDialog 상자를 만드는 예입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from PyQt6.QtWidgets import QApplication, QDialog, QVBoxLayout, QLabel, QLineEdit, QPushButton
 
app = QApplication([])
 
dialog = QDialog()
 
layout = QVBoxLayout(dialog)
 
label1 = QLabel(“Name:”)
line_edit1 = QLineEdit()
layout.addWidget(label1)
layout.addWidget(line_edit1)
 
label2 = QLabel(“Age:”)
line_edit2 = QLineEdit()
layout.addWidget(label2)
layout.addWidget(line_edit2)
 
button_ok = QPushButton(“OK”)
button_ok.clicked.connect(dialog.accept)
layout.addWidget(button_ok)
 
if dialog.exec() == QDialog.DialogCode.Accepted:
    name = line_edit1.text()
    age = line_edit2.text()
    print(“Name:”, name)
    print(“Age:”, age)
else:
    print(“Dialog canceled or closed.”)
 
app.exec()
 
Colored by Color Scripter
cs
QApplication
  • PyQt6 라이브러리에서 필요한 모듈 QApplication, QDialog, QVBoxLayout, QLabel, QLineEdit 및 QPushButton을 가져옵니다. 애플리케이션을 초기화하기 위해 QApplication 인스턴스를 생성합니다.
  • 다음으로 dialog라는 QDialog 인스턴스를 만듭니다.
  • 대화 상자의 레이아웃을 설정하기 위해 layout이라는 QVBoxLayout 인스턴스를 생성합니다.
  • QLabel 및 QLineEdit 클래스를 사용하여 레이블과 입력 상자를 만듭니다. 이 예에서는 두 개의 레이블(“이름:” 및 “연령:”)과 각각의 입력 상자를 만듭니다.

  • addWidget() 메서드를 사용하여 레이아웃에 레이블과 입력 상자를 추가합니다.
  • QPushButton 클래스를 사용하여 OK 버튼을 생성하고 해당 텍스트를 “OK”로 설정합니다. clicked.connect() 메서드를 사용하여 dialog의 accept() 메서드를 버튼의 클릭 이벤트에 연결합니다.
  • 레이아웃에 확인 버튼을 추가합니다.
  • 대화 상자를 호출하기 위해 dialog의 exec() 메서드를 사용합니다. 사용자가 확인 버튼을 클릭하면 dialog.exec()는 QDialog.DialogCode.Accepted를 반환하고 text() 메서드를 사용하여 입력 상자에서 입력된 값을 검색할 수 있습니다. 사용자가 대화 상자를 취소하거나 닫으면 dialog.exec()는 QDialog.DialogCode.Rejected를 반환하고 해당 메시지를 인쇄합니다.
  • 마지막으로 app.exec()를 사용하여 애플리케이션 이벤트 루프를 실행하여 애플리케이션을 시작하고 이벤트 루프가 종료될 때까지 계속 실행합니다.

5. 결론 및 의견

QMessageBox, QInputDialog, QFileDialog 모듈을 사용하여 간단하게 메시지, 입력, 파일 선택 대화 상자를 만들 수 있습니다. 또한, QDialog 클래스를 사용하여 다이얼로그 대화 상자를 만들 수도 있습니다. 용도에 맞게 python gui 구성시 사용하시면 됩니다.

[관련글]

파이썬 Tkinter 파일 불러오기-filedialog

PyQt6 QT Designer 사용자 지정 위젯

파이썬 PyQt6 레이아웃 배치

PyQt6 위젯 정리

파이썬 파이썬 QMessageBox

글 내비게이션

Previous post
Next post

Related Posts

파이썬

Pyqt6 QML GUI 사용

2023년 05월 24일

PyQt6와 QML을 소개하고자 합니다. PyQt6는 파이썬과 Qt 프레임워로, 사용자 인터페이스(UI)를 만들 수 있습니다. QML을 사용하면 직관적으로 구현할 수 있습니다. Pyqt6 QML GUI 사용 및 예제를 같이 알아보겠습니다.

Read More
파이썬

PyQt6 계산기 만들기

2023년 05월 15일

프로그래밍을 배우는 많은 사람들이 자신의 첫 번째 프로그램으로 계산기를 만드는 것을 선택합니다. 그 이유는 계산기를 만들면, 파이썬에서 GUI 프로그래밍의 기본 개념을 배울 수 있기 때문입니다. 심플한 PyQt6 계산기 만들기 및 방법을 배울 것입니다.

Read More
파이썬

PyQt6 네트워크 프로그래밍 애플리케이션 만들기

2023년 06월 09일

네트워크 프로그래밍은 현대 소프트웨어 개발에서 매우 중요한 영역 중 하나입니다. 이번 게시물에서는 PyQt6 네트워크 프로그래밍 사용을 통해 간단한 클라이언트-서버 애플리케이션을 만드는 방법에 대해 알아보겠습니다.

Read More

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최신 글

  • Argo Smart Routing 효과
  • CDN 캐싱 전략 성능비교
  • 동영상 CDN 비용 계산
  • 해외 쇼핑몰 CDN 최적화
  • ERP 구축 정부지원금 2025

최신 댓글

  1. 윈도우 단축키 모음 Best5의 ace
  2. http https 차이의 챗GPT 란? · Working for you

보관함

  • 2025년 5월
  • 2025년 4월
  • 2025년 3월
  • 2025년 2월
  • 2025년 1월
  • 2024년 12월
  • 2024년 11월
  • 2024년 8월
  • 2024년 6월
  • 2024년 5월
  • 2024년 3월
  • 2024년 2월
  • 2023년 11월
  • 2023년 9월
  • 2023년 8월
  • 2023년 7월
  • 2023년 6월
  • 2023년 5월
  • 2023년 4월
  • 2023년 3월
  • 2023년 2월

카테고리

  • flutter
  • html
  • linux
  • macbook
  • Pc Useful Tips
  • 미분류
  • 워드프레스
  • 자바(Java)
  • 파이썬
  • 프로그래밍
©2025 toylee blog · 컴퓨터, 프로그램 정보 공유 | WordPress Theme by SuperbThemes