1. 코드

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_()

2. 상세 내용

파일 입출력은 앞에서 한 color나 font보다 선택할 수 있는 매서드가 많습니다. 예를 들어 특정 파일만 열리게 할 수도 있죠. 파일이 존재하는지, 존재하지 않는지, 읽기만 할 것인지 등에 대한 메서드가 자세하게 정의되어 있으니, 아래 문서를 참고해주세요.

QFileDialog - Qt for Python

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)