python - 如何用pyqt中的数据快速填充QTableView/Model
问题描述
我正在寻找一种在 python 中用超过 10000 行数据填充 QTableModel 的快速方法。
在双 for 循环中迭代项目需要 40 多秒。
解决方案
我建议创建一个 QStandardItem 的 numpy 数组并使用 appendColumn 函数填充模型:
start = time.time()
data = np.empty(rows, cols, dtype=object) # generate empty data-Array
#### Fill the data array with strings here ###
items = np.vectorize(QStandardItem)(data) # generate QStandardItem-Array
print(time.time() - start, "seconds to create items")
start = time.time()
# iterate over columns (because we have segneficantly less columns than rows)
for i in range(len(cols)):
self.myQTableModel.appendColumn(items[:,i])
self.myQTableModel.setHorizontalHeaderLabels(headerarray) # set headers
print(time.time()-start, "seconds to load DB")
16000 行和 7 列的结果:
0.346372127532959 seconds to create items
1.1745991706848145 seconds to load DB
推荐阅读
- java - 如何将数组拆分为多个线程Java
- c# - SetContentView 给出“LinkAssemblies 任务意外失败”构建错误
- javascript - 如何从数组中删除所有元素但按值保留特定元素
- node.js - firebase.json 重写 nodejs/vuejs firebase 托管的问题?
- javascript - 选择特定区域中存在的所有 HTML 元素的最优化方法是什么?
- python - 为什么以下部分代码的输出不同?
- amazon-dynamodb - 在我的自定义 ask-sdk webhook 中使用 Dynamo DB 客户端
- java - 如何检查网页元素是否在左上角
- c++ - 如何在不破坏封装的情况下对 std::vector 成员使用移动语义?
- c# - 动态更改 connString