-
[Qt] GUI with Qt : Text Editor, Qt Designer, Qt API임베디드/Qt for python 2024. 5. 13. 02:42
Text Editor
▶파일 시스템 탐색기 열기
QFileDialog.getOpenFileName()
#파일 열기 후 파일 경로를 path에 저장 path = QFileDialog.getOpenFileName(self, "Open File")[0]copy
- 기능 : 파일 시스템 탐색기를 연다
- 입력값 : 다음의 값들이 선택사항으로 전달된다 (필수 x)
- parent (선택 사항): 파일 대화 상자의 부모 위젯
- caption (선택 사항): 파일 대화 상자의 제목지정
- directory (선택 사항): 파일 대화 상자가 열리는 기본 디렉토리의 경로를 지정.
- filter (선택 사항): 보여지는 파일 필터지정 (파일 형식 등...)
- initialFilter (선택 사항): 대화 상자가 열릴 때 선택된 파일 필터 지정
- options (선택 사항): 파일 대화 상자의 옵션 지정.
(예를 들어, QFileDialog.DontUseNativeDialog 옵션을 사용하면 네이티브 파일 대화 상자를 사용하지 않도록 설정할 수 있다.)
- 반환값 : 사용자가 선택한 파일의 경로, 모든 파일들을 반환
- [0] : 파일 경로
- [1] : 모든 파일들
▶ 파일 저장 경로, 이름 선택하기
TextEdit객체.QFileDialog.getSaveFileName(text)
path = QFileDialog.getSaveFileName(self, "Save As")[0] if path: #파일 경로를 self.path에 저장 self.path = path #save() 호출 self.save()copy
- 기능 : 파일 대화 상자를 열고 사용자에게 파일을 저장할 위치와 파일 이름을 선택하도록 한다.
- 입력값 : 다음의 값들이 선택으로 들어간다.
- parent (선택 사항): 파일 대화 상자의 부모 위젯
- caption (선택 사항): 파일 대화 상자의 제목지정 => 여기서는 "Save As"로 설정
- directory (선택 사항): 파일 대화 상자가 열리는 기본 디렉토리의 경로를 지정.
- filter (선택 사항): 보여지는 파일 필터지정 (파일 형식 등...)
- initialFilter (선택 사항): 대화 상자가 열릴 때 선택된 파일 필터 지정
- options (선택 사항): 파일 대화 상자의 옵션 지정.
- 반환값 : 사용자가 선택한 파일의 경로와 파일 이름을 포함하는 튜플을 반환.
- [0] : 파일 경로
- [1] : 파일 이름
▶ 사용자가 선택한 파일을 읽고 QTextEdit 위젯에 띄우기
TextEdit객체.setPlainText(text)
self.edit = QPlainTextEdit() ``` self.edit.setPlainText(open(self.path).read())copy
- 기능 : QTextEdit 위젯에 있는 텍스트를 변경하거나 새로운 텍스트를 설정
- 입력값 : 설정할 텍스트
- 반환값 : None
▶ QTextEdit 위젯에 작성된 text 받아오기
TextEdit객체.toPlainText(text)
f.write(self.edit.toPlainText())copy
- 반환값 : 해당 TextEdit 객체에 작성된 text를 반환한다.
▶ 파일 open
with A as B :
- 기능 : 파일 스트림을 다루는 기능
- open 성공시 : 실행문 수행
- open 실패시 : file close 해준다.
▶ 파일 덮어쓰기
파일.write(text)
f.write(self.edit.toPlainText())copy
- 기능 : 파일에 text를 덮어쓴다.
- 입력값 : 파일에 작성할 text
- self.edit.toPlainText() : QTextEdit 위젯의 현재 텍스트를 가져오는 함수. 즉, edit위젯에 저장된 텍스트를 파일에 write한다.
▶ 파일 수정여부 확인
TextEdit위젯.isModified()
self.edit.document().isModified()copy
- 기능 :QTextEdit 위젯이 수정되었는지 여부를 확인
- 입력값 : 없음
- 반환값 : QTextEdit 위젯이 수정되었으면 True를 반환하고, 그렇지 않으면 False를 반환
Qt Designer
파이썬 터미널 창에서 uic 파일변환 : .ui 파일을 .py 파일로 변환
.\venv\Scripts\pyside6-uic.exe .\[변환할.ui파일] -o .\[변환후.py파일명]
Qt API
레이블의 크기 조절
- adjustSize() : widget의 크기를 텍스트의 길이로 맞춰준다.
- .width() : 너비
- .height() : 높이
레이블 이동하기
- move(x,y) : widget 이동
사용자의 마우스 클릭에 호출되는 API
mousePressEvent(self, event)
- 기능 : 미리 정의된 API, mouse 클릭 시 자동으로 호출된다.
- event : 마우스 클릭 시 정보 담고 있다.
- event.x(), event.y() : 마우스의 x,y좌표 정보
- *사용 시 warning 발생 (언젠가 새로운 API로 대체된다는 경고이지만 무시하자)
colorDialog 창
QColorDialog.getColor().name()
- 기능 : QColorDialog 창을 띄운다.
- 반환값 : ser가 색상을 선택하면 선택한 색의 이름을 return
입력 메시지창을 띄워 User로부터 메시지를 입력 받기
QInputDialog.getText(pos, “Dialog제목”, “Dialog 메시지”)
- 기능 : 입력 메시지창을 띄운다.
- 반환값 : user가 메시지 창에 입력한 값
Qt Timer
- QtCore 패키지 import 필수
- from PySide6.QtCore import *
- QBasicTimer() : Timer 객체 생성
- 객체.start(ms, self) : Timer 시작, interval 단위 ms, timerEvent 호출
- 객체.stop() : Timer 종료
- timerEvent(self, event) : Timer 가 동작할 때마다 호출되는 함수
- 이름 변경 불가
- 재정의 해서 사용
- event 인자는 함수를 호출한 Timer 객체에 대한 정보를 가지고 있다.
=> event.timerId()를 통해 timerEvent를 발생시킨 timer 식별 가능!
time
- time() : 1970년 1월1일 ~ 지금까지 흐른 시간 s로 return
'임베디드 > Qt for python' 카테고리의 다른 글
[Qt] GUI with Qt : Visualization (0) 2024.05.13 [Qt] GUI with Qt : QWidget (0) 2024.05.13 [Qt] GUI with Qt : QTimer, QThread (0) 2024.05.13 [Qt] GUI with Qt : QMainWindow (0) 2024.05.13 [Qt] GUI with Qt : Qwidget (0) 2024.05.12