tablewidget 被下一个标题覆盖

问题描述

下一组的表头覆盖了前一组的表。关于如何保护桌子的任何想法?我尝试使用垫片,但没有用。任何其他想法如何解决问题? 我有一个标题,例如一个帐号和一个姓名。下面我想列出所有的帖子。但该程序不仅适用于一个帐户。 100 多个帐户可以在给定日期记录余额。 (例如在年底)

from PyQt5.QtWidgets import (QApplication,QComboBox,QDialog,QWidget,QDialogButtonBox,qformlayout,qgridLayout,qgroupbox,QHBoxLayout,QLabel,QLineEdit,QMenu,QMenuBar,QPushButton,QSpinBox,QTextEdit,QScrollArea,QVBoxLayout,QListWidget,QTableWidget,QTableWidgetItem)

from    PyQt5.QtCore       import Qt,pyqtSlot,pyqtSignal,QSize,QDate


import sys

class Dialog(QDialog):

    def __init__(self,parent=None):
        super().__init__(parent)

        self.setGeometry(64,64,1000,400)
        self.setwindowTitle("test")
        self.scrollarea = QScrollArea(self)
        self.scrollarea.setFixedWidth(990)
        self.scrollarea.setWidgetResizable(True)
        widget = QWidget()
        self.scrollarea.setWidget(widget)
        self.layout_SArea = qgridLayout(widget)
        self.layout_All   = QVBoxLayout(self)
        self.layout_All.addWidget(self.scrollarea)

        for i in range(1,20,2):
            self.layout_SArea.addWidget(QLabel("I am the header"),i,0)
            self.tableWidget  = QTableWidget()
            self.tableWidget.setRowCount(10)
            self.tableWidget.setColumnCount(12)
            for x in range(10):
                newitem = QTableWidgetItem()
                newitem.setData( Qt.EditRole,'{:0,.0f}'.format(x))
                newitem.setFlags( Qt.ItemIsSelectable |  Qt.ItemIsEnabled )
                newitem.setTextAlignment(Qt.AlignRight)
                self.tableWidget.setItem(x,newitem)
            self.layout_SArea.addWidget(self.tableWidget,i+1,5)
            
        self.layout_All.addLayout(self.layout_SArea)
    


if __name__ == '__main__':
    app = QApplication(sys.argv)
    dialog = Dialog()
    sys.exit(dialog.exec_())

解决方法

行跨度参数表示网格中有多少“行单元格”被项占用,所以它不应该使用行索引

更改为:

    self.layout_SArea.addWidget(self.tableWidget,i+1,1,5)