我有一个运行良好的PyQt qTableWidget,但是我有多行具有相似的信息,我希望将其折叠在第一行下。这类似于Excel如何将行分组在一起。参见以下示例。对于此示例,我想将前3行(所有“ Hello World”)归为第一行,就像在Excel示例中一样,其中只能看到一个“ Hello World”。
在qTableWidget中有可能吗?还是有一种方法可以使TreeView成为表?我的实际代码使用QAbstractTableModel处理数据。
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.setObjectName("tableWidget")
self.gridLayout.addWidget(self.tableWidget, 0, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.tableWidget.setRowCount(4)
self.tableWidget.setColumnCount(2)
self.tableWidget.setItem(0, 0, QtWidgets.QTableWidgetItem('Hello'))
self.tableWidget.setItem(0, 1, QtWidgets.QTableWidgetItem('World'))
self.tableWidget.setItem(1, 0, QtWidgets.QTableWidgetItem('Hello'))
self.tableWidget.setItem(1, 1, QtWidgets.QTableWidgetItem('World'))
self.tableWidget.setItem(2, 0, QtWidgets.QTableWidgetItem('Hello'))
self.tableWidget.setItem(2, 1, QtWidgets.QTableWidgetItem('World'))
self.tableWidget.setItem(3, 0, QtWidgets.QTableWidgetItem('Good Bye'))
self.tableWidget.setItem(3, 1, QtWidgets.QTableWidgetItem('World'))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())