• 카테고리

    질문 & 답변
  • 세부 분야

    데스크톱 앱 개발

  • 해결 여부

    미해결

QLabel('이름') vs. QLabel('이름', self)

21.05.04 01:37 작성 조회수 249

0

안녕하세요.

여러 위젯들을 보면 self를 쓸때가 있고 안쓸때가 있습니다.

예를들어 QLabel('A')와 QLabel('A', self)를 비교하면, 아래 제가 이해한 내용이 맞나요?

전자는 self(현재 instance)의 속성으로써 QLabel을 추가하면서 그 이름도 'A'인 것이고,

후자는 그냥 'A'라는 이름을 갖는 라벨이 있는것이고 (즉, 현재 instance와는 관계없음)...

즉... 예를들어 self에 있는 layout에 addWidget은 둘다(전자/후자) 가능하지만,

전자는 self의 속성으로 있는 이름이 'A'인 라벨이고

후자는 self와는 상관없는 이름만 'A'인 라벨이다!

위 관계가 맞나요?

틀린부분/또는 더 정확하게 설명 부탁드립니다.

답변 1

답변을 작성해보세요.

2

안녕하세요 :)

해당부분이 헷갈리셨을거라 생각됩니다.

App(Qwidget)으로 해당 인스턴스를 만들고 __main__에서 실행하고 있을때,

예를 들어 QLabel("내용", self) 라고 하면  self는 현재 실행되고 있는 인스턴스App(Qwidget)를 가리키게 됩니다. 즉, 어디에 부착할지(부모)를 명시하게 되는 것이죠. 

실제로 vs code에서 self에 마우스 커서를 갖다 놓으면

App 라는 곳을 가리키게 됩니다.

더불어 해당 값을 입력할 때 아래와 같은 정보가 뜹니다.

결국 어디에 부착시킬지 명시하는 것이죠.