【发布时间】:2012-09-16 21:16:51
【问题描述】:
用户在 QTableWidget 的所有单元格中手动设置值。表格第一行的值表示我们要存储在字典FirstRowDict 中的值。第二行的值将放在SecondRowDict 中,以此类推。
所以从一张如图所示的表格中,
我们希望在这个例子中以FirstRowDict={0:10,1:20} 结尾
和SecondRowDict={0:30,1:40}
为了实现这一点,我创建了一个按钮并添加了一个在单击时更新目标字典的操作:
def button_click():
for j in range(0,2):
FirstRowDict.update({i: float(str(tablewidget.itemAt(0,j).text()))})
#I put "0" in itemAt because first row is zero
#tablewidget = QTableWidget() declared earlier in the source code
SecondRowDict.update({i: float(str(tablewidget.itemAt(1,j).text()))})
print '1st_Row_Dict=%s'%1st_Row_Dict,'\n2nd_Row_Dict=%s'%2nd_Row_Dict
输出不正确,因为字典填充了相同的值,而不是每个单元格的唯一值。
我得到FirstRowDict={0:10,1:10} 和SecondRowDict={0:10,1:10}
看来我必须使用QTableWidgetItem http://doc.qt.nokia.com/4.7-snapshot/qtablewidget.html#item 创建一个新项目
Python 初学者,不胜感激。
【问题讨论】:
-
你得到什么作为输出?顺便说一句,
1st_Row_Dict在 Python 中不是一个有效的名称。 -
这是我得到的:FirstRowDict={0:10,1:10}, SecondRowDict={0:10,1:10} 。我编辑了字典名称,因为我刚刚选择了这些名称例子
标签: python pyqt4 cell qtablewidget