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 QPropertyAnimation Framework

2023년 05월 25일

GUI의 기능성은 중요하지만, 눈에 띄는 시각적인 요소도 중요합니다. GUI 요소에 애니메이션과 동적인 움직임을 추가하여 시각적으로 매력적인 GUI를 만들 수 있습니다. 이 글에서는 PyQt6 QPropertyAnimation Framework 를 살펴보고 GUI 안에 움직이는 방법에 대해 같이 알아보겠습니다. 1. PyQt6 QPropertyAnimation Framework 란? PyQt6 애니메이션 프레임워크는 Qt의 애니메이션 프레임워크를 기반으로 구축되었으며, GUI에 애니메이션을 만드는…

Read More
파이썬

python tkinter Label

2023년 05월 11일

파이썬 에서는 다양한 위젯(Widget)을 제공합니다. python tkinter Label 위젯에 대해서 자세히 알아보려 합니다. 흔히 텍스트만 보여주는 것이 아니라 이미지를 넣을 수도 있고, 폰트 설정 및 색상 조절도 가능합니다.

Read More
파이썬

데이터시각화 PyQt 사용 방법

2023년 06월 18일

데이터 분석 및 시각화의 세계에서 인터랙티브하고 시각적으로 매력적인 데이터 표현을 생성하는 것은 통찰력을 얻고 정보를 효과적으로 전달하는 데 필수적입니다. 데이터시각화 PyQt 사용을 통한 공부 같이 시작해 볼까요?

Read More

답글 남기기 응답 취소

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

최신 글

  • usb 쓰기금지 해제방법, 어렵지 않아요
  • usb a타입에 대해 알아보자
  • 포토샵 누끼따기 방법
  • vpn 연결방법 쉽게 설명해드립니다.
  • usb 장치 인식 실패시 해결방안

최신 댓글

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

보관함

  • 2025년 6월
  • 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