2017-10-13 78 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