2014-07-18 1 views
0

저는 PyQt4 GUI 개발에 관한 ZetCode의 튜토리얼을 살펴 보겠습니다.키워드 자체의 중요성?

self.toolBar = self.addToolBar('Exit')` 
self.toolBar.addAction(exitAction) 

을하고이 메뉴 바 추가 - - 그는 툴바를 만들기 위해 다음 코드를 제공 여기

menuBar = self.menuBar()            
fileMenu = menuBar.addMenu('&File') 
fileMenu.addAction(exitAction) 

자기가 QtGui.QMainWindow입니다 부모 클래스입니다.

나는 그가 첫 번째 예제에서 self.toolBar를 사용하는 이유를 모르지만 두 번째 예제에서는 self.menuBar를 사용하지 않습니다.

답변

2

변수 이름의 시작에 self을 추가하면 또는 예 변수 멤버 변수 수 있습니다. mainWindow의 인스턴스를 만들 때 menuBar는 이미 QMainWindow에 있습니다. 따라서 멤버 변수에 menuBar에 대한 참조를 저장하지 않아도됩니다. self.menuBar()을 호출하여 코드의 어느 부분에서든지 언제든지 검색 할 수 있기 때문입니다. 반면, mainWindow를 만들 때 toolBar가 존재하지 않으므로 을 호출하여 추가하고 멤버 변수에 toolBar에 대한 참조를 저장하여 코드의 모든 부분에서 toolBar에 대한 작업을 수행해야합니다.

1

사실, 저자는 self.menuBar()를 사용합니까 :

menuBar = self.menuBar() 

은 위의 menuBarself.menuBar()에 의해 반환 된 객체를 참조한다.

1
menuBar = self.menuBar()            

self은 이미 메뉴 바의 감각이 있음을 나타냅니다. 이 메소드 호출은 이미 존재하는 객체를 검색 할 것이므로 인스턴스에 저장할 필요가 없으며 반드시 그렇게해야 할 필요도 없습니다 (예 : 실제로 다른 사람의 메뉴 막대이고 클래스가이를 조작하는 경우) . menuBar로 두 번째 경우

2

menuBar = self.menuBar()            
fileMenu = menuBar.addMenu('&File') 
fileMenu.addAction(exitAction) 

는 단순히 코드의 첫 번째 부분에서 차이가 없다

fileMenu = self.menuBar().addMenu('&File') 
fileMenu.addAction(exitAction) 

아래로 비등, self.menuBar(), 다음 코드에 대한 참조입니다 당신을 가지고있다

self.toolBar = self.addToolBar('Exit')` 
self.toolBar.addAction(exitAction) 

그래서, 묻는다면

나는 그가 첫 번째 예제에서 self.toolBar를 사용하는 이유를 모르지만, 은 두 번째 예제에서 self.menuBar를 사용하지 않습니다.

프로그래머와 프로그래머에 따라 프로그래밍 스타일과 가독성이 다릅니다.