안규 공부방

Python 프로그래밍 > PyQt5 - QtWidgets - QFileDialog (파일 다이얼로그)

등록일 : 2018-07-11 15:56 조회수 : 67,946

이번 예제는 메인메뉴에서 '열기' 메뉴를 넣었을때 파일 다이얼로그를 띄워서 파일선택 한후 내용을 textedit 에 표시하는 예제를 보도록 하겠습니다.
 
# -*- coding: utf-8 -*-
import sys
import codecs
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QMenuBar, QAction, QTextEdit
from PyQt5.QtGui import QIcon

class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        fileAction = QAction(QIcon("refresh.png"), "&Open", self)
        fileAction.setShortcut('Ctrl+O')
        fileAction.triggered.connect(self.showDialog)
        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(fileAction)

        self.textedit = QTextEdit(self)
        self.setCentralWidget(self.textedit)
        self.statusBar()

        self.setGeometry(300,300,300,300)
        self.setWindowTitle('File Window')
        self.show()

    def showDialog(self, e):
        filepath = QFileDialog.getOpenFileName(self, 'Open File', 'd:')

        if filepath[0]:
            # 일반 open 으로 열었을 경우 아래와 같은 인코딩 에러가 나온다
            # UnicodeDecodeError: 'cp949' codec can't decode bytes in position
            fp = codecs.open(filepath[0], 'r', 'utf-8')

            with fp:
                buf = fp.read()
                self.textedit.setText(buf)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())





 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.