我正在处理使用PyQt5时遇到的一个问题,我已经制作了一个QTableWidget,它显示了我用熊猫制作的DataFrame (来自一个电子表格)。
我试图不成功地做的是:从用户双击的单元格中获取文本,这样我就可以使用这些信息建立一个基于选择的新Widget。
我学到的是,我首先需要将双击连接到一个函数,但之后我不能继续:
我在QTableWidget上的连接如下:
(在我的MainWindow Widget下面)
self.tableView.cellDoubleClicked.connect(self.expandShipments)
“之后我声明这个信号连接到的函数(expandShipments)”
def expandShipments(self):
*** code i need to get doubleClicked cell text ***
我真的很想帮忙处理这个案子。
谢谢。口碑
编辑:这就是我的表的填充方式。
QTableWidget。
def loadFile(self):
fileName='C:/Users/310287757/Desktop/JLG/Programming/tstBIGDF.xlsx'
df = pandas.read_excel(fileName, sheetname='MAIN', header=0) # read file and set header row
df= df.loc[df['Name Opp'] == self.comboProy.currentText()]
self.tableView.setColumnCount(len(df.columns))
self.tableView.setRowCount(len(df.index))
tags=[]
for ele in list(df.columns.values):
tags.append(ele)
self.tableView.setHorizontalHeaderLabels(tags)
for i in range(len(df.index)):
for j in range(len(df.columns)):
self.tableView.setItem(i, j, QTableWidgetItem(str(df.iat[i, j])))
self.tableView.resizeColumnsToContents()
self.tableView.resizeRowsToContents()
PPen = df['Pending amount'].values.sum()
PTot = df['total item amount'].values.sum()
PP=("Pendiente por facturar: U$S %.2f"% PPen)
PT=("Total: U$S %.2f" % PTot)
self.lblPEND.setText(PP)
self.lblTOTAL.setText(PT)
del df,fileName,tags
发布于 2017-10-13 22:36:52
cellDoubleClicked信号发送行和列。所以您的代码应该如下所示:
self.tableView.cellDoubleClicked.connect(self.expandShipments)
...
def expandShipments(self, row, column):
item = self.tableView.item(row, column)
print(item.text())
https://stackoverflow.com/questions/46738734
复制相似问题