5

我使用 Qt 设计器创建了一个主窗口,其中包含一个 tabwidget。我的问题是,当窗口最大化时,tabwidget 保持其原始大小 - 因此在其右侧留下了很多灰色空间。

我希望主窗口始终最大化,那么如何调整 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

1 回答 1

7

你需要使用QLayout某种类型的。

您可以在 Designer 中轻松完成此操作。只需右键单击表单并选择或Layout-您需要表单上的其他小部件来查看两者之间的区别。您将在 Object Inspector 中看到添加的内容,并且可以像使用小部件一样调整其属性。Lay Out HorizontallyLay Out VerticallyQLayout

您还可以使用代码创建布局。这是一个工作示例:

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_())
于 2012-11-26T13:20:53.763 回答