본문 바로가기
GUI 튜토리얼/PyQt5 한꼬집씩만 따라해보기

3. 어떤 위젯도 최상위 윈도우가 될 수 있다?

by 일코 2022. 11. 21.

지난 포스팅

2022.11.21 - [기타/PyQt5 한꼬집씩만 따라해보기] - 2. QMainWindow의 엄마, QWidget

 

2. QMainWindow의 엄마, QWidget

지난 포스팅 2022.11.21 - [기타/PyQt5 한꼬집씩만 따라해보기] - 1. PyQt5 GUI의 기본 틀부터 시작합시다. 1. PyQt5 GUI의 기본 틀부터 시작합시다. 지난 포스팅 2022.11.21 - [기타/PyQt5 한꼬집씩만 따라해보기]

martinii.fun


 

이번 포스팅에서는 : 버튼 하나만 딸랑 붙은 위젯 만들어보기

이번 포스팅에서는 우리 사고력의 지평을 넓히는 시간을 잠깐 가져봅시다.

PyQt5.QtWidgets 안에는 QPushButton이라는 위젯이 있습니다. 말 그대로 누를 수 있는 버튼입니다.

QPushButton은 QMainWindow나 QWidget처럼 최상위 GUI가 될 수 있을까요?

아니, 되고 안 되고를 떠나서, QPushButton이 최상위 GUI가 될 수 있는지 없는지는 어떻게 알 수 있을까요?

이것도 족보를 따져보면 됩니다.

부모의 부모의 부모까지 찾아내서 근본이 어디인지 찾아보는 작업은

복잡할 것 같지만 생각보다 단순하며, 오래 걸리지 않습니다.

파이참의 Ctrl-B를 활용해봅시다.

두 단계 올라가보니까 QWidget이 나오네요.

QPushButton은 QAbstractButton의 딸이자 QWidget의 손녀군요?

성별은 편의상 제 맘대로 정하겠습니다;;

그래서 QPushButton도 하나의 위젯, 즉 독립적인 GUI가 될 수 있습니다.

 

아래 코드도 지금까지 봤던 코드와 비슷해 보일 거예요.

from PyQt5.QtWidgets import QApplication, QPushButton

app = QApplication([])  # 이벤트핸들러 생성

button = QPushButton("눌러주세요")  # 푸쉬버튼 생성 # text="눌러주세요"
button.show()  # 푸쉬버튼 보이게

app.exec()  # 이벤트핸들러 실행

 

Shift-Alt-F10으로 실행해보면

아직은 버튼에 기능을 붙이지 않았습니다. 

Qt에서는 특정 조건이나 동작(시그널)과 반응(슬롯)을 조합해
다양한 기능을 만들 수 있습니다.
위젯.시그널.connect(슬롯) 이라는 문법으로요.
이건 조금 이따가 설명드릴게요.

이제 본격적으로 QMainWindow에 QPushButton을 넣는 작업부터 시작해봅시다.

 


다음 포스팅

2022.11.21 - [기타/PyQt5 한꼬집씩만 따라해보기] - 4. QMainWindow에 위젯을 넣어봅시다.

 

4. QMainWindow에 위젯을 넣어봅시다.

지난 포스팅 2022.11.21 - [기타/PyQt5 한꼬집씩만 따라해보기] - 3. 어떤 위젯도 최상위 윈도우가 될 수 있다? 3. 어떤 위젯도 최상위 윈도우가 될 수 있다? 지난 포스팅 2022.11.21 - [기타/PyQt5 한꼬집씩만

martinii.fun

 

댓글