728x90
728x90
간단한 CRUD(Create, Read, Update, Delete) 프로그램
들어가며
- PyQt5로 간단한 CRUD(Create, Read, Update, Delete) 기능을 수행할 수 있는 프로그램을 만들어보자.
코드
QTextEdit
위젯을 이용하여 CRUD 기능을 수행할 수 있는 메모장과 비슷한 프로그램이다.
import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QAction, QFileDialog class TextEditor(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.textEdit = QTextEdit(self) self.setCentralWidget(self.textEdit) self.initMenuBar() self.setGeometry(100, 100, 800, 600) self.setWindowTitle('Text Editor') self.show() def initMenuBar(self): menubar = self.menuBar() fileMenu = menubar.addMenu('File') openAction = QAction('Open', self) openAction.setShortcut('Ctrl+O') openAction.triggered.connect(self.openFile) saveAction = QAction('Save', self) saveAction.setShortcut('Ctrl+S') saveAction.triggered.connect(self.saveFile) fileMenu.addAction(openAction) fileMenu.addAction(saveAction) def openFile(self): options = QFileDialog.Options() options |= QFileDialog.ReadOnly fileName, _ = QFileDialog.getOpenFileName(self, 'Open File', '', 'Text Files (*.txt)', options=options) if fileName: with open(fileName, 'r') as file: self.textEdit.setText(file.read()) def saveFile(self): options = QFileDialog.Options() options |= QFileDialog.ReadOnly fileName, _ = QFileDialog.getSaveFileName(self, 'Save File', '', 'Text Files (*.txt)', options=options) if fileName: with open(fileName, 'w') as file: file.write(self.textEdit.toPlainText()) if __name__ == '__main__': app = QApplication(sys.argv) window = TextEditor() sys.exit(app.exec_())

728x90
728x90
'Framework > PyQt' 카테고리의 다른 글
[PyQt] QTableWidget과 SQLite3를 연동하여 구현한 CRUD 프로그램 (0) | 2023.11.27 |
---|---|
[PyQt] 플랫폼 독립적인(Platform Independent) 스타일 적용하는 방법 (Fusion) (0) | 2023.09.21 |
[PyQt] 맥(Mac)에서 윈도우(Windows)와 비슷하게 메뉴 표시하는 방법 (0) | 2023.09.21 |
[PyQt] QTableWidget에 1,000 단위로 쉼표(,)를 추가하고 숫자 정렬 기능 추가하기 (0) | 2023.07.20 |
[PyQt] QTimer.singleShot 함수를 특정 시간 간격으로 여러번 실행하는 방법 (0) | 2023.07.16 |
[PyQt] QAction에서 triggered 시그널을 사용할 때, 인자를 triggered 메서드에 전달하는 방법 (0) | 2023.07.08 |
[PyQt] QClipboard.Clipboard와 QClipboard.Selection의 차이점 (0) | 2023.07.07 |
[PyQt] 커스텀 아이콘 패키지(fugueicons) 설치 및 사용해보기 (0) | 2023.07.05 |