0
我想在两个QtTableView之间传输数据。为此,我首先选择要传输的行,然后单击“to_X_table”。PyQT:两个TableView之间的传输
但我不明白如何用第一个填充第二个tableview。 我想:
self.to_X_table.clicked.connect(self.to_X_tableView)
def to_X_tableView(self):
self.proxy = QtCore.QSortFilterProxyModel()
self.proxy.setSourceModel(self.tableWidget_Input_Col.selectionModel())
self.tableView_X.setModel(self.proxy)
self.tableView_X.resizeColumnsToContents()
我得到这个消息:
TypeError : setSourceModel(self,QAbstractItemModel) : 1 argument unexpected type QItemSelectionModel
I'dont真的知道什么self.tableWidget_Input_Col.selectionModel()的返回。我想这是一个模型。但似乎不是。
我也试图建立自己的模型,像这样(以下这篇文章Get data from every cell from a QTableView)
def to_X_tableView(self):
indexes = self.tableWidget_Input_Col.selectionModel().selectedRows()
self.model = QtGui.QStandardItemModel()
for index in sorted(indexes):
print('Row %d is selected' % index.row())
self.model.invisibleRootItem().appendRow(
QtGui.QStandardItem(self.tableWidget_Input_Col.model.index(index.row, 0)))
self.proxy = QtCore.QSortFilterProxyModel()
self.proxy.setSourceModel(self.tableWidget_Input_Col.selectionModel())
self.tableView_X.setModel(self.proxy)
self.tableView_X.resizeColumnsToContents()
,但我得到这个错误:
Traceback (most recent call last):
File "ChartGUI.py", line 151, in to_X_tableView
QtGui.QStandardItem(self.tableWidget_Input_Col.model.index(index.row, 0)
AttributeError: 'builtin_function_or_method' object has no attribute 'index'
当你尝试这样的结果是什么?如果出现错误,请发布回溯。 – Jeff
TypeError:setSourceModel(self,QAbstractItemModel):1个参数意外类型QItemSelectionModel。不能fint python文档(只有C++文档https://doc.qt.io/qt-5/qtableview.html) – Coolpix
其实如果你编辑你的原始文章,所以格式更容易阅读,并张贴完全回溯,那将是最有用的。尽管看起来错误在第四行,并且无论您从self.tableWidget_Input_Col.selectionModel()调用的是不是self.proxy.setSourceModel()预期会接收的类型的参数。如果你发布任何你已经尝试过的东西,这也很有帮助。 – Jeff