QT Designer 로 메모장 구현

행동하는 개발자·2022년 9월 8일
0

PySide, PyQt

목록 보기
4/20

LOGON 폼 만들기

  • toolbar는 빈 곳에 마우스 오른쪽 버튼 클릭한 후 도구모음추가로 만든다.

  • 생성자란 클래스 내에서 특별한 이름(init)을 갖기만 하면 객체가 생성될 때 자동으로 호출되는 함수가 있는 이를 생성자라고 한다.

  • enum은 일반적으로 서로 관련이 있는 여러 개의 상수의 집합을 정의할 때 사용, enum 클래스를 사용하면 인스턴스의 종류를 제한할 수 있다.

메인 윈도우 크기를 조절할 때, 레이아웃을 적용해야 한다. 이 때, 어떤 레이아웃을 적용해도 상관없다. 어차피 텍스트 위젯 하나로만 꽉 채울 것이니까.

메모장 구현해보기

  1. qt designer를 연다.

  2. plain text edit을 선택 후 드래그 해 mainwindow로 끌어온다.

  3. 레이아웃을 적용한다.

  4. 저장한 후 파일 구현한다.

pyside2-uic 소스.ui 결과물.py
  1. 아래와 같이 내용을 입력 한다.
from 결과물.py import Ui_MainWindow

  1. 참고로 위의 내용에서 setupui와 MainWindow는 결과물.py에 있던 내용이다.

  2. 다음과 같이 만들어지는 것을 확인할 수 있다.

메모장 구현해보기2

  1. 다시 만들었던 내용을 QT DESIGNER로 연다.

  2. 기존 메모장과 있던 기능들을 따라해 메뉴를 만든다(그냥 typing하면 됨).

  3. 그리고 확인하면 action메뉴이름 으로 생성된 것을 확인할 수 있다.

  4. 다음과 같이 추가하면 된다.

위 메뉴는 새 창 만들기 인데, 보는 것처럼 새창 만들기 = MainWindow로 설정하고 append해준 후 처음 action에서 triggered.connect(self.새 창 만들기) 해준 후 self.windows = [] 해주면 완성된다.

  • 참고로 단축키 설정은 &E 이런 식이고 오른쪽 정렬되어있는 단축키는 속성편집기에서 shortcut에서 설정하면 된다.

메모장 구현해보기3

  1. 파일 열기와 저장하기를 구현해야 하는데, 메모장의 글을 쓰는 곳이 plaintextedit이다.

  2. 그리고 '나가기'는 시그널/슬롯 편집기에서 구현할 수 있다.

송신자: actionQuit()
시그널: triggered()
수신자: MainWindow
슬롯: close() (제일 중요)

profile
끊임없이 뭔가를 남기는 사람

0개의 댓글