Appia의 IT세상

파이썬[Python GUI, PyQt5 Tutorial 022] 메모장 만들기 본문

Python/Python PyQt5 (GUI)

파이썬[Python GUI, PyQt5 Tutorial 022] 메모장 만들기

Appia 2020. 7. 20. 07:33
반응형

파이썬[Python GUI, PyQt5 Tutorial 022] 메모장 만들기

 

이번 포스팅은 간단한 메모장 만들기를 통해서 앞서 잠깐 살펴보았던 QTextEdit와 메뉴바 만들기에 대해서 활용하는 측면에서 살펴보고자 합니다. 일단 여기 이 부분을 작업을 하면서는 PyQt5을 사용했습니다. 또한 파일 입출력 또한 함께 사용하였습니다. 

 

import sys
 
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp, QFileDialog, QTextEdit,QHBoxLayout ,QVBoxLayout
 
 
 
class QtGUI(QMainWindow):
 
    def __init__(self):
 
        super().__init__()
 
        self.resize(400400)
 
        self.setWindowTitle("Appia")
 
        menubar = self.menuBar()
 
        Filemenu = menubar.addMenu("파일")
 
        Filemenu1 = menubar.addMenu("편집")
 
        Filemenu2 = menubar.addMenu("서식")
 
 
        loadfile = QAction('laod File ...', self)
 
        savefile = QAction('save File ...', self)
 
        exit = QAction('Exit',self)
 
        loadfile.triggered.connect(self.add_open)
 
        savefile.triggered.connect(self.add_save)
 
        exit.triggered.connect(qApp.quit)
 
        Filemenu.addAction(loadfile)
 
        Filemenu.addAction(savefile)
 
        Filemenu.addAction(exit)
 
        self.text1= QTextEdit(self)
 
        self.text1.setAcceptRichText(True)
 
        self.setCentralWidget(self.text1)
 
        self.show()
 
 
    def add_open(self):
 
        FileOpen = QFileDialog.getOpenFileName(self, 'Open file''./')
 
        f = open(FileOpen[0],'r')
 
        textcontenct = f.read()
 
        self.text1.setText(textcontenct)
 
        f.close()
 
 
    def add_save(self):
 
        FileSave = QFileDialog.getSaveFileName(self, 'Save file''./')
 
        textcontent = self.text1.toPlainText()
 
        f = open(FileSave[0], 'w')
 
        f.write(textcontent)
 
        f.close()
 
 
 
if __name__ == '__main__':
 
    app = QApplication(sys.argv)
 
    ex = QtGUI()
 
    app.exec_()
cs

위의 코드를 실행하면 다음과 같은 화면이 나타납니다. 

여기에서는 앞서 포스팅에서 생성한 메뉴바를 그대로 활용했습니다. 단, 여기에서 사용된 메뉴바에서 파일 불러오기와 저장하기는 실제로 동작되게 이벤트 처리를 하였습니다. 그럼 그 부분만 먼저 한번 살펴보겠습니다. 

 

    def add_open(self):
 
        FileOpen = QFileDialog.getOpenFileName(self, 'Open file''./')
 
        f = open(FileOpen[0],'r')
 
        textcontenct = f.read()
 
        self.text1.setText(textcontenct)
 
        f.close()
 
 
    def add_save(self):
 
        FileSave = QFileDialog.getSaveFileName(self, 'Save file''./')
 
        textcontent = self.text1.toPlainText()
 
        f = open(FileSave[0], 'w')
 
        f.write(textcontent)
 
        f.close()
cs

 

위와 같이 총 2개의 함수가 있습니다. add_open의 경우 파일을 불러와서 이 부분을 윈도우에 있는 텍스트 창에 출력되게 하였습니다. 그리고 add_save의 경우에는 현재 텍스트 창에 있는 텍스트를 파일로 저장되게 하는 기능입니다. 코드에서 보셨겠지만, 대부분의 위젯에서는 text()메소드를 통해서 관련 텍스트를 읽어옵니다. 하지만 텍스트 에디트의 경우에는 toPlaintText()를 통해서 읽어오셔야 합니다. 

 

다음 링크를 함꼐 검토하시면 도움이 되실 것라고 생각합니다. 

https://appia.tistory.com/90?category=849946

 

파이썬[Python] 010 파일 입출력

모든 프로그래밍을 하면, 관련해서 결과물을 얻기를 바랍니다. 즉, 콘솔 창에 코딩에 대한 결과를 원하든 아니면, 파일로 관련해서 결과를 원하던, 어떤 형태로든 결과가 출력 되길 원할 것입니�

appia.tistory.com

 

https://appia.tistory.com/297?category=867518

위의 링크와 함께 보시면 조금 더 많이 도움이 되실 것라고 생각합니다. 오늘은 간단하게 파이썬[Python GUI, PyQt5 Tutorial 022] 메모장 만들기라는 주제로 포스팅해봤습니다. 혹시 궁금하신것이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments