Qt designer와 QFileDialog를 이용하여 여러 파일의 이름을 출력해 보겠습니다.
우선 Qt designer에서 아래와 같이 Dialog와 버튼, textEdit을 만듭니다.
(lineEdit이 아니라 textEdit을 사용하였으니 유의하시기 바랍니다.)
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
필요한 모듈을 불러옵니다.
test_ui = r'C:\Users\Administrator\Desktop\Test.ui'
만들어진 UI 파일의 경로를 'test_ui'라는 변수에 넣습니다.
class MainDialog(QDialog):
def __init__(self):
QDialog.__init__(self, None)
uic.loadUi(test_ui, self)
QDialog 클래스를 상속받아 MainDialog 클래스를 만들고 시작하게 합니다.
그리고 만들어진 UI를 Load 해 줍니다.
self.PushButton1.clicked.connect(self.Button_click)
푸쉬버튼이 클릭되면 동작을 할 수 있도록 연결합니다.
def Button_click(self):
file_names = QFileDialog.getOpenFileNames(self)
버튼이 클릭되면 QFileDialog 에서 getOpenFileNames 라는 속성을 사용해서 여러 파일을 선택할 수 있습니다.
각각의 파일이름은 'file_names' 변수에 듀플형태로 저장됩니다.
for file in file_names[0]:
exist = self.textEdit.toPlainText()
self.textEdit.setText(exist + file + '\n')
'file_names[0]'은 파일이름만 List 형태로 표시됩니다.
For문을 사용하여 각각의 파일 이름이 textEdit에 표시됩니다.
※ lineEdit은 한 줄만 입력이 되는데 반해, textEdit은 여러줄 입력이 가능합니다.
전체 코드는 아래와 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
test_ui = r'C:\Users\Administrator\Desktop\Test.ui'
class MainDialog(QDialog):
def __init__(self):
QDialog.__init__(self, None)
uic.loadUi(test_ui, self)
self.PushButton1.clicked.connect(self.Button_click)
def Button_click(self):
file_names = QFileDialog.getOpenFileNames(self)
for file in file_names[0]:
exist = self.textEdit.toPlainText()
self.textEdit.setText(exist + file + '\n')
if __name__ == '__main__':
app = QApplication(sys.argv)
Dialog = MainDialog()
Dialog.show()
app.exec_()
|
cs |
아래는 실행 화면입니다.
'파이썬(Python) > 파이썬 GUI(PyQt5 & tkinter)' 카테고리의 다른 글
tkinter - 레이블, 엔트리, 버튼 만들기 (0) | 2021.10.06 |
---|---|
tkinter - 윈도우 창 만들기 (0) | 2021.10.02 |
PyQt5 - (qt designer) 간단한 MainWindow 만들기 (0) | 2020.12.16 |
PyQt5 - QFileDialog(파일선택 창 열기) (0) | 2020.12.15 |
PyQt5 - QTableWidget(테이블 위젯) 사용하기 2 (0) | 2020.12.14 |
댓글