2012-11-26 3 views
4

tabwidget이있는 Qt 디자이너를 사용하여 기본 창을 만들었습니다. 내 문제는 창이 최대화되면 tabwidget이 원래 크기로 유지되므로 오른쪽에 많은 회색 공간이 남게된다는 것입니다.PyQt4에서 위젯 크기 조정

메인 윈도우를 항상 최대화하고 싶습니다. 어떻게하면 더 많은 공간을 차지하도록 탭 위젯의 크기를 조정할 수 있습니까? 이를 달성하기 위해 다음 코드에 무엇을 추가 할 수 있습니까?

self.tabWidget = QtGui.QTabWidget(self.centralwidget) 
self.tabWidget.setEnabled(True) 
self.tabWidget.setGeometry(QtCore.QRect(20, 40, 601, 501)) 
self.tabWidget.setTabPosition(QtGui.QTabWidget.North) 
self.tabWidget.setObjectName(_fromUtf8("tabWidget")) 

답변

4

어떤 종류의 QLayout을 사용해야합니다.

Designer에서는이 작업을 매우 쉽게 수행 할 수 있습니다. 양식을 마우스 오른쪽 버튼으로 클릭하고 LayoutLay Out Horizontally 또는 Lay Out Vertically을 선택하십시오. 양식의 다른 위젯을 사용하여 두 가지 차이점을 확인하십시오. Object Inspector에 QLayout이 추가 된 것을 볼 수 있으며 위젯을 사용하여 가능한 것처럼 속성을 조정할 수 있습니다.

코드로 레이아웃을 만들 수도 있습니다. 다음은 작동 예제입니다.

import sys 
from PyQt4.QtCore import QRect 
from PyQt4.QtGui import QApplication, QWidget, QTabWidget, QHBoxLayout 

class Widget(QWidget): 
    def __init__(self, parent=None): 
     QWidget.__init__(self, parent) 

     # Create the layout. 
     self.h_layout = QHBoxLayout() 

     # Create the QTabWidget. 
     self.tabWidget = QTabWidget() 
     self.tabWidget.setEnabled(True) 
     self.tabWidget.setGeometry(QRect(20, 40, 601, 501)) 
     self.tabWidget.setTabPosition(QTabWidget.North) 
     self.tabWidget.setObjectName('tabWidget') 

     # Add the QTabWidget to the created layout and set the 
     # layout on the QWidget. 
     self.h_layout.addWidget(self.tabWidget) 
     self.setLayout(self.h_layout) 


if __name__ == '__main__': 
    app = QApplication(sys.argv) 

    widget = Widget() 
    widget.show() 

    sys.exit(app.exec_()) 
관련 문제