차이점이 설명부탁드립니다.
158
작성한 질문수 1
- self.btn_1=QPushButton("clikc1",self)
- btn_1=QPushButton("clikc1",self)
1번과 2번의 차이는 알겠는데
3.QPushButton("clikc1")
4.QPushButton("clikc1",self)
3번과 4번의 차이는 무었인가요? 예제에서 어떤때는 3번을 사용하면 화면에 보이고
class문법에서는 주로 4번을 사용하면 보이던데 로그인설정창(class)에서는 또 3번으로
사용하신는것 같은데 또 화이면 표시 되더라구요 => 강의는 어디에 표시할것인가 어디에 붙일것인가)라는 말씀으로 설명하신던데
좀 상세히 설명좀 해주세요..
답변 1
0
HYUNG SEOK LEE 님 안녕하세요.
네 우선 두 개의 차이는 한개의 파일에서 여러개의 클래스를 선언할 때
각 클래스마다 self 를 사용해야 "해당 클래스의 인스턴스인지"를 정확하게 선언해서 함수 등을 사용할 수 있습니다.
로그인 같은 경우에는 해당 파일 내에서 단독으로 사용하는 거라 self를 제외해도 해당 파일의 인스턴스를 인식해서
자동으로 화면에 보여지는 것입니다.
그렇다면 QPushButton 객체의 정확한 레퍼런스를 살펴볼까요?
공식 레퍼런스 링크 입니다.
http://pyqt.sourceforge.net/Docs/PyQt4/qpushbutton.html
init (self, QWidget parent = None)
init (self, QString text, QWidget parent = None)
init (self, QIcon icon, QString text, QWidget parent = None)
여기서 보면 생성자에서 첫 번째보면 parent를 지정해 주지 않으면 None 값으로 자동으로 생성하죠?
즉, 질문해주신 어떤 경우에(부모가 인스턴스 자체인경우에는) 자동으로 해당 화면에서 표시가 되는것입니다.
self를 넣어준 부분에서는 부모가 이 클래스 인스턴스임을 지정해줘서 폼에 출력이 되는 것입니다.
정리하면 한 개의 파일에 여러개의 클래스가 있고 다중의 PyQt 폼이 존재한다면 부모가 누구인지 지정할 경우는
명확하게 self를 넣어준 것이고 아닌 경우는 그냥 생략한 것입니다.
위의 링크의 self 이해하기 부분을 다시 읽어보시면 도움이 되실 겁니다.
현재 예제에서 error 발생
0
367
3
유튜브 동영상 다운로드
0
1448
2
Atom 에디터 관련
0
337
1
위시켓 폼데이터
0
274
1
스케줄러 사용 관련 질문 드립니다
0
627
1
selenium 에러
0
428
1
Progress bar 쓰레드 관련
0
489
1
Install Package 관련 문의
0
328
1
tkinter 샘플 코드 실행 오류 건
0
1267
1
4-7-6 네이버 & 카카오 주식 정보 가져오기
0
381
1
네이버자동로그인_by_selenium
0
876
1
위시캣 로그인 처리 및 크롤링 질문
0
345
1
2-8-1 네이버이미지 크롤링 질문
1
604
3
li:nth-of-type 질문
0
350
2
에러가 뜨는데 잘 모르겠어요ㅠ
0
401
2
Install Packages 항목이 안보이는 이유가 뭘까요?
0
401
2
환경변수 Path 설정 방법
0
631
1
웹 브라우저 없는 스크랩핑 및 파싱 실습(1) - 인프런
0
333
1
웹 브라우저 없는 스크랩핑 및 파싱 실습(1) -git주소
0
477
3
download2-8-1. py질문
0
203
1
ip 차단 당하는 거 같은데 아무리 랜덤주고, sleep 줘도 안 되는데 다른 방법 더 있을까요??
0
645
1
인프런 환경이 바뀌어서 제나름대로 하는데
0
196
1
다시올려주신 예제파일로하는데
0
190
1
아직도 에러가뜨나보네요?
0
584
1





