ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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
Designed by Tistory.
-->