2012-11-26 127 views
4

我已經創建了一個使用Qt設計器的主窗口,其中有一個tabwidget。我的問題是,當窗口最大化時,Tabwidget保持其原始大小 - 因此在其右側留下大量灰色空間。在PyQt4中調整窗口小部件

我想讓主窗口始終最大化,那麼如何調整tabwidget以佔用更多空間?我可以添加下面的代碼來實現這個目標?

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 HorizontallyLay Out Vertically - 您需要使用表單上的其他小部件來查看兩者之間的區別。您會在對象檢查器中看到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_()) 
相關問題