在PyQt4中调整窗口小部件

问题描述:

我已经创建了一个使用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")) 

您需要使用某种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_())