首页 > 解决方案 > 动态调整小部件内小部件的大小?

问题描述

基本上我想要做的是创建一个QListWidget包含几个QTableWidgets 的,我想要实现的是每次在里面QTableWidget插入行时, QListWidgetItem 需要调整大小以便插入的行可见。有没有简单的方法可以做到这一点?

到目前为止,这是我想出的:

from PyQt4 import QtCore, QtGui
import sys


class Test(object):
    def __init__(self, main_window):
        main_window.resize(600, 400)
        self.central_widget = QtGui.QWidget(main_window)

        self.list_widget = QtGui.QListWidget(self.central_widget)
        self.list_widget.setGeometry(QtCore.QRect(10, 10, 580, 380))
        self.list_widget.setSpacing(5)

        self.list_widget.addItem(QtGui.QListWidgetItem())
        self.list_widget.addItem(QtGui.QListWidgetItem())

        self.table_widget_1 = QtGui.QTableWidget(0, 2, self.list_widget)
        self.table_widget_1.setHorizontalHeaderLabels(['Column 1', 'Column 2'])
        self.table_widget_1.horizontalHeader().setResizeMode(1)
        self.table_widget_1.verticalHeader().setVisible(False)

        self.table_widget_2 = QtGui.QTableWidget(0, 2, self.list_widget)
        self.table_widget_2.setHorizontalHeaderLabels(['Column 1', 'Column 2'])
        self.table_widget_2.horizontalHeader().setResizeMode(1)
        self.table_widget_2.verticalHeader().setVisible(False)

        self.list_widget.setItemWidget(
            self.list_widget.item(0),
            self.table_widget_1
        )

        self.list_widget.setItemWidget(
            self.list_widget.item(1),
            self.table_widget_2
        )

        self.table_widget_1.insertRow(self.table_widget_1.rowCount())
        self.table_widget_2.insertRow(self.table_widget_2.rowCount())
        main_window.setCentralWidget(self.central_widget)


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    main_window = QtGui.QMainWindow()
    ui = Test(main_window)
    main_window.show()
    sys.exit(app.exec_())

到目前为止,这就是它的样子……

在此处输入图像描述

标签: pythonpython-2.7pyqtpyqt4

解决方案


推荐阅读