问题描述
我正在编写一个库存控制程序,但在获取选定单元格的值时遇到了问题,我知道我需要使用"QtGui.QTableWidget.CurrentRow"和"QtGui.QTableWidget.CurrentColumn"来获取项目的位置。但是,我似乎无法让它工作,因为当调用函数时,没有选择任何内容,因此它返回-1,-1
有人知道如何获取它,以便它在用户每次选择单元格时都运行"QtGui.QTableWidget.CurrentRow"和"QtGui.QTableWidget.CurrentColumn"吗?
我认为一旦有了坐标,我需要的代码是QtGui.QTableWidget.Item?
这是我用来获取行和列的代码:
row = self.table.currentRow
column = self.table.currentColumn
self.ID = self.table.item(row, column)
当用户点击按钮添加库存时,程序应使用刚获得的产品代码,在从用户那里获得添加的数量后对数据库进行更改
我使用的是python3.2和pyqt 4
如有任何帮助,我们将不胜感激
谢谢
萨姆
推荐答案
当QTableWidget
看到有人单击了它的一个单元格时,它将发出cellClicked
事件-您需要连接到该事件。可能类似于
self.table.cellClicked.connect(self.cell_was_clicked)
可能在您的安装代码中,
函数cell_was_clicked
可能类似于
def cell_was_clicked(self, row, column):
print("Row %d and Column %d was clicked" % (row, column))
item = self.table.itemAt(row, column)
self.ID = item.text()
我没有使用currentRow
和currentColumn
,因为您希望在click
上得到响应。该函数的文档here(对不起,我更喜欢pyside-它与PyQt基本相同)。还请注意itemAt
而不仅仅是item
-因为您将在单元格中获取项目,而不是其内容。使用QTableWidgetItem
的.text()
函数获取内容。
注意--这是在使用"时隙和信号",特别是"新风格"。由于您使用的是PyQT4和Python3,因此您应该不会对‘新东西’有任何问题:-)
您可以考虑浏览插槽和信号tutorial-这可能会理顺其中一些抽象概念。祝你好运!
这篇关于从表小部件中的选定单元格检索单元格数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!