from PyQt5.QtWidgets import QWidget, QApplication, QTextEdit, QFileDialog,\\
QVBoxLayout, QPushButton, QLabel
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap
import sys
from pathlib import Path
class 파일다이얼로그(QWidget):
def __init__(self):
super().__init__()
self.UI초기화()
def UI초기화(self):
self.textEdit = QTextEdit("이곳에 파일 내용이 들어갑니다.")
self.label = QLabel("이곳에는 그림이 들어갑니다.")
btn_open = QPushButton('파일 불러오기')
btn_open.clicked.connect(self.loadFile)
btn_img = QPushButton('이미지 불러오기')
btn_img.clicked.connect(self.loadImg)
vbox = QVBoxLayout()
vbox.addWidget(self.textEdit)
vbox.addWidget(btn_open)
vbox.addWidget(self.label, alignment=Qt.AlignCenter)
vbox.addWidget(btn_img)
self.setLayout(vbox)
self.setGeometry(300, 100, 600, 800)
self.setWindowTitle('QFileDialog')
self.show()
def loadFile(self):
Openfile = QFileDialog.getOpenFileName(self,\\
'파일 열기', './', filter="Python Files(*.py)")
if Openfile[0]:
f = open(Openfile[0], 'r', encoding='utf-8')
with f:
data = f.read()
self.textEdit.setText(data)
def loadImg(self):
home_dir = str(Path.home())
Openfile = QFileDialog.getOpenFileName(
self, "이미지 열기", directory=home_dir, filter="Images (*.png *.jpg)")
self.label.setPixmap(QPixmap(Openfile[0]))
프로그램무한반복 = QApplication(sys.argv)
실행인스턴스 = 파일다이얼로그()
프로그램무한반복.exec_()
파일 입출력은 앞에서 한 color나 font보다 선택할 수 있는 매서드가 많습니다. 예를 들어 특정 파일만 열리게 할 수도 있죠. 파일이 존재하는지, 존재하지 않는지, 읽기만 할 것인지 등에 대한 메서드가 자세하게 정의되어 있으니, 아래 문서를 참고해주세요.
from PyQt5.QtWidgets import QFileDialog
from pathlib import Path
btn_open = QPushButton('파일 불러오기')
btn_open.clicked.connect(self.loadFile)
btn_img = QPushButton('이미지 불러오기')
btn_img.clicked.connect(self.loadImg)
def loadFile(self):
Openfile = QFileDialog.getOpenFileName(
self, '파일 열기', './', filter="Python Files(*.py)")
if Openfile[0]:
f = open(Openfile[0], 'r', encoding='utf-8')
with f:
data = f.read()
self.textEdit.setText(data)