2013-10-07 3 views
0

위 코드가 창 크기에 따라 확장되지 않도록하는이 실수는 무엇입니까?위젯은 창 크기에 따라 확장되지 않습니다

class FeedbackWindow(QWidget): 
    def __init__(self): 
     QWidget.__init__(self) 
     self.main_layout = QVBoxLayout(self) 
     self.main_widget = QWidget(self) 
     self.main_widget.setLayout(self.main_layout) 
     self.title_label = QLabel("Tell us what you think:") 
     self.feedback_text_editor = QTextEdit() 
     self.send_button = QPushButton("Send") 

     self.main_layout.addWidget(self.title_label) 
     self.main_layout.addWidget(self.feedback_text_editor) 
     self.main_layout.addWidget(self.send_button) 

     self.setWindowTitle("Feedback") 
     self.setGeometry(200,120,300,300) 

    if __name__ == "__main__": 

     app = QApplication(sys.argv) 
     w = FeedbackWindow() 
     w.show() 
     app.exec_() 

주 레이아웃과 위젯은 자체에 연결되므로 크기가 필요합니다.

답변

1

코드는 self.main_widget을 사용하지 않습니다. self.main_widget을 삭제하십시오 :

import sys 

from PyQt4.QtCore import * 
from PyQt4.QtGui import * 

class FeedbackWindow(QWidget): 
    def __init__(self): 
     QWidget.__init__(self) 
     self.main_layout = QVBoxLayout(self) 
     #self.main_widget = QWidget(self)    # main_widget is not used. 
     #self.main_widget.setLayout(self.main_layout) 
     self.setLayout(self.main_layout) 
     self.title_label = QLabel("Tell us what you think:") 
     self.feedback_text_editor = QTextEdit() 
     self.send_button = QPushButton("Send") 

     self.main_layout.addWidget(self.title_label) 
     self.main_layout.addWidget(self.feedback_text_editor) 
     self.main_layout.addWidget(self.send_button) 

     self.setWindowTitle("Feedback") 
     self.setGeometry(200,120,300,300) 

if __name__ == "__main__": 
    app = QApplication(sys.argv) 
    w = FeedbackWindow() 
    w.show() 
    app.exec_() 
1

제거

self.main_widget = QWidget(self) 
self.main_widget.setLayout(self.main_layout) 

당신이 그들을 필요가 없습니다. 구현시, 레이아웃은 main 위젯이 아닌 self.main_widget에 설정됩니다. 주요 위젯은 FeedbackWindows 자체입니다. self.main_layout = QVBoxLayout(self)으로 전화하면 암시 적으로 기본 위젯에 레이아웃을 적용합니다.

관련 문제