PyQt4中调整大小部件(Resizing widgets in PyQt4)

2019-07-04 03:16发布

我已经使用中有一个tabwidget Qt Designer创建一个主窗口。 我的问题是,当窗口最大化时,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"))

Answer 1:

你需要使用QLayout某种。

您可以在Designer做到这一点很容易。 只需右键单击表格,并选择Layout ,要么Lay Out HorizontallyLay Out Vertically -你需要在表格上其他部件看到两者的区别。 你会看到QLayout Object Inspector中添加,你就可以像你可以与你的小工具来调整它的属性。

您也可以创建代码布局。 这里有一个工作示例:

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_())


文章来源: Resizing widgets in PyQt4