PyQt5中获取QTableWidget当前行第一列Item值异常问题
问题分析与解决办法
哦,我一眼就看出问题所在啦!你用错获取表格项的方法了😅
itemAt()这个函数根本不是按行/列索引来拿内容的——它是根据**屏幕坐标(x、y像素值)**定位表格项的,所以你传行号、列号进去肯定得不到正确结果,哪怕手动输整数也白搭。
正确的做法是用QTableWidget.item(row, column)方法,这个才是专门通过行、列索引获取对应单元格的接口。修改你的代码如下:
def shotselected(self): try: selectedRowIndex = self.tableWidget_shotselect.currentRow() print ("Selected row index: " + str(selectedRowIndex)) # 把itemAt替换成item,直接传入行和列索引 item = self.tableWidget_shotselect.item(selectedRowIndex, 0) if item is not None: # 额外加个非空判断,避免选中空行时报错 print(item.text()) else: print("选中行的第一列没有内容") except Exception as e: print(e)
顺便补个小提示:如果你的表格支持多选,可以用selectedItems()或者selectedRanges()来获取所有选中项,但从你的代码场景看应该是单选,上面的修改完全能解决问题啦。
内容的提问来源于stack exchange,提问作者Nub
相关产品推荐
相关产品推荐

