PyQt QTableWidget: 实现每录入 4 列数据自动切换下一行
你可以使用 QTableWidget 的 insertRow() 方法在每次录入 4 列数据后插入一个新的行。以下是一个示例代码:
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget
import sys
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.table = QTableWidget()
self.table.setColumnCount(4)
self.layout = QVBoxLayout()
self.layout.addWidget(self.table)
self.setLayout(self.layout)
def add_data(self, data):
row_count = self.table.rowCount()
column_count = self.table.columnCount()
if column_count != len(data):
return
self.table.insertRow(row_count)
for i, value in enumerate(data):
item = QTableWidgetItem(value)
self.table.setItem(row_count, i, item)
if (row_count + 1) % 4 == 0:
self.table.insertRow(row_count + 1)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
data1 = ['A', 'B', 'C', 'D']
data2 = ['E', 'F', 'G', 'H']
data3 = ['I', 'J', 'K', 'L']
data4 = ['M', 'N', 'O', 'P']
window.add_data(data1)
window.add_data(data2)
window.add_data(data3)
window.add_data(data4)
sys.exit(app.exec_())
在这个示例中,我们首先创建一个 QTableWidget 并设置其列数为 4。然后,我们定义了一个 add_data 方法,它接受一个包含 4 个数据的列表作为参数。在该方法中,我们获取当前表格的行数和列数,并与输入数据的长度进行比较。如果列数不匹配,方法将返回。否则,我们使用 insertRow() 方法在表格中插入一个新的行。然后,我们使用 setItem() 方法在新行中添加数据。最后,我们检查当前行数是否是 4 的倍数,如果是,就再插入一个新的空行。
原文地址: https://www.cveoy.top/t/topic/pq1S 著作权归作者所有。请勿转载和采集!