在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中轻松完成此操作。只需右键单击表格,然后选择Layout
和Lay Out Horizontally
或Lay 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_())