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 |