모달 다이얼로그

행동하는 개발자·2022년 10월 25일
0

PySide, PyQt

목록 보기
12/20

모달(modal) 다이얼로그

다이얼로그: 앱의 콘텐츠 화면 위에 나타나는 모달 형식(다이얼로그가 화면 위에 남아있는 동안 앱의 모든 기능은 중지된 상태가 유지되는)창이며 중요한 정보나 결정을 사용자에게 묻기 위해 사용한다.

보통 ok, cancel 버튼을 가지고 ok버튼에서는 qdialog에서 제공하는 accept 슬롯을 연결하고 cancel 버튼에서는 reject 스롯을 연결하여 제작된다.

QDialog.exec_() 방식으로 함수를 호출하고 수행이 끝난 후 다이얼로그로부터 정보를 읽어들이는 방식으로 코드를 제작한다.

myDialog = MyDialog(self)
if myDialog.exec_():
    ...        # okButton 이 눌릴때의 처리
else:
    ....        # cancelButton이 눌릴떄의 처리

외워서 사용해보기

pyqt 규칙, 작은 것 -> 큰 것. 그래서 미리 계획을 세우고 들어가야 함.

QDialog 에 self x, y, useGrid,useSnap 사용해서 들고 오기

  1. 인자를 불러와야 함. x, y, useGrid, useSnap인 데, useGrid와 useSnap은 bool 값임.

  2. x, y 는 label로 xy 입력창은 에디터 위젯으로 만든다. 라벨과 입력창을 연결시킬 수 있다.

  3. gridlayout을 만들고 x, y, xy입력창을 집어넣어야 함.

  4. x와 y, xy 입력창을 넣을 Use Grid라는 그룹박스를 만들어야 함.

  5. Use Snap이라는 체크박스를 만들어야 함.

  6. ok cancel 버튼을 만들어야 함. 이 때, 클릭함수도 만듬.

  7. 버튼 레이아웃(QHboxlayout)을 만들어서 그 안에 버튼들을 넣어야 함

  8. 메인 레이아웃(QVboxlayout)을 만들고 addwidget으로 순서대로 넣어야 함

  9. 메인레이아웃을 set하고 이름을 정함.

  10. Use grid라는 그룹박스와 Use Snap이라는 체크박스를 toggle로 연결하여 setEnable 시켜야 함.

  11. gridinfo를 만듬. 그래야 내가 입력한 값에 따라서 출력되는 값도 바뀜.

  12. return 되게 함

  13. mainwindow를 만듬. QTextEdit의 공간을 만듬

  14. 모달 다이알로그로 가는 메뉴바를 만듬

  15. 인자 값을 미리 설정해둠

  16. Go_Grid 본 클래스 값이 입력되는 값에 따라 업데이트되도록 설정

헷갈리는 사항들

  1. toggled.connect임.

  2. self.menuBar().addMenu() 를 통해 툴바에서 세부메뉴창으로 들어갈 수 있음.

  3. 세부메뉴창에서 triggered.connect를 해야 클릭했을 때, 원하는 메뉴로 들어갈 수 있음

  4. 순서가 뒤바뀐거 같지만 3번을 2번으로 연결시켜야함.

  5. gridinfo 값을 self.를 붙여 default 값을 부여

  6. 다른 클래스의 값을 self를 붙여서 불러올 수 있음.

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

0개의 댓글