【发布时间】:2023-03-25 19:50:01
【问题描述】:
我有一个处于可编辑模式的 QTableWidget,用户在其中输入整数输入,我如何生成在此表中输入的数据列表以便对其执行操作,这是我的手动代码:
def dataframe_generation_from_table(self,table):
number_of_rows = table.rowCount()
number_of_columns = table.columnCount()
tmp_df = pd.DataFrame({ 'Date' : [] , str(self.final_lvl_of_analysis) :[], 'Value': []})
for i in range(0,number_of_rows):
for j in range(0,number_of_columns):
tmp_item = table.item(i,j)
tmp_df2 = pd.DataFrame( { 'Date' : [pd.to_datetime(table.horizontalHeaderItem(j).data())] , str(self.final_lvl_of_analysis) :[ str(table.verticalHeaderItem(i).data())], 'Value': [float(tmp_item.data(0))]})
print tmp_df2
tmp_df.update(tmp_df2, join = 'left', overwrite = False)
return tmp_df
另外,我正在使用以下代码生成 QTableWidget:
self.pd_table = QtGui.QTableWidget(self.groupBox_19)
self.pd_table.setObjectName(_fromUtf8("pd_table"))
self.pd_table.setColumnCount(0)
self.pd_table.setRowCount(0)
我的规格是:pandas 0.18.1、PyQt 4 和 Python 2.7
【问题讨论】:
-
始终从您感兴趣的视图模型中检索数据。
-
@Trilarion 请考虑我没有使用 QTableView ,而是使用 QTableWidget ,所以如果您知道从 QTableWidget 获取数据的方法,请回复适当的答案。
-
QTableWidget 继承自 QTableView,QTableView 继承自 QAbstractItemView,其中包含一个 QAbstractItemModel 并且你有模型。我建议与模型交互或通过 QAbstractItemView.setModel 提供您自己的模型。
-
@Trilarion 感谢您解释整个父系,我已经创建了用于在 QTableView 中粘贴另一个表的抽象模型,这里是 ideone.com/do1Ho6 但我不知道如何修改我的模型接受输入,如果可能的话做帮助。我确实有一个查询,如果 QTableWidget 不是专门为用户交互而制作的,并且我完全需要使用它,那么它有什么用?此外,当这似乎是一个更常见的功能时,为什么还没有在其中包含一个方法?
标签: python pandas pyqt pyqt4 qtablewidget