问题描述
下一组的表头覆盖了前一组的表。关于如何保护桌子的任何想法?我尝试使用垫片,但没有用。任何其他想法如何解决问题? 我有一个标题,例如一个帐号和一个姓名。下面我想列出所有的帖子。但该程序不仅适用于一个帐户。 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)