2017-10-13 50 views
0

在使用PyQt5时,我处理了一个问题,我已经创建了一个QTableWidget,它显示了一个我在pandas中预先制作的DataFrame(从电子表格中)。cellDoubleClicked text python

什么即时尝试unsuccesfully要做的是:从用户双击单元格中获取文本,以便我可以使用该信息建立一个新的Widget的基础上作出的选择。

我所学到的是,我首先需要连接双击功能,但我不能事后继续:

我对我的QTableWidget的连接出现如下:

(在我主窗口小部件)

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 
+0

请显示你的代码。 – eyllanesc

+0

QTableWidget或QTableView? – eyllanesc

+0

您可以显示代码如何填充小部件中的数据。 – eyllanesc

回答

0

cellDoubleClicked信号发送行和列。所以你的代码应该是这样的:

self.tableView.cellDoubleClicked.connect(self.expandShipments) 
... 

def expandShipments(self, row, column): 
    item = self.tableView.item(row, column) 
    print(item.text()) 
+0

Merci Beaucoup!顺便说一句,我知道这种情况可能听起来像一个假人,但我发现Pyqt模块文档有时很难理解。荣誉 –

+0

@JayLopez使用Qt的文档,如果您知道C++的最低限度,您将理解正确。 :P – eyllanesc