簡體   English   中英

如何使用PySide將數據添加到QTableWidget

[英]How to add data to QTableWidget using PySide

這個問題的答案要么是用C ++,要么是不能回答我的問題。 我正在學習python,我不是專業程序員,我學過這門語言但還沒有構建實時應用程序。

  • 我使用QT設計了用戶界面。
  • 我將此用戶界面導入到我的主程序中。

用戶界面 [附加截圖] * 試圖實現: *

  • 我想將數據添加到QLineEdit中,當我點擊“添加行”按鈕時,它應該將數據輸入到QTableWidget中。

  • 我已經使用“firstApp”導入PyMainWindow中的語句將UI導入到我的主程序中

  • 我是否需要在主程序中為QTableWidget創建新對象以添加數據?

這是我試圖做的,但它不起作用

代碼不'工作:

self.addData.clicked.connect(self.addDataClicked)

def addDataClicked(self):
    username = self.userName.text()
    print username ## for testing if signal is working ##

    self.item.setItem(0,0,username) 

##其中0是行,0是列,username是我要添加的數據##

我得到的錯誤是項目全局不存在 我理解這一點,但我在想,因為我已經將UI導入我的主應用程序,python會知道我在UI文件中討論該項目。 這是這樣寫的。

    item = QtGui.QTableWidgetItem()
    self.tableWidget.setHorizontalHeaderItem(0, item)
    item = QtGui.QTableWidgetItem()
    self.tableWidget.setHorizontalHeaderItem(1, item)
    item = QtGui.QTableWidgetItem()
    self.tableWidget.setHorizontalHeaderItem(2, item)
    item = QtGui.QTableWidgetItem()
    self.tableWidget.setHorizontalHeaderItem(3, item)
    item = QtGui.QTableWidgetItem()
    self.tableWidget.setHorizontalHeaderItem(4, item)
    item = QtGui.QTableWidgetItem()
    self.tableWidget.setHorizontalHeaderItem(5, item)
    self.tableWidget.horizontalHeader().setVisible(True)

請幫忙。

您輸入的數據應該是您的表格標題? 似乎很不尋常。

文檔

在將表添加到所需位置的表之前,將在表外構建項:

QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(pow(row, column+1)));
tableWidget->setItem(row, column, newItem);

嘗試這樣的事情:

def addDataClicked(self):
    username = self.userName.text()

    self.myTable.insertRow(0)
    item = QtGui.QTableWidgetItem(username)
    self.myTable.setItem(0, 0, item)

[編輯]問題是,新項目是作為新的獨立對象創建的,然后您將添加到容器中。 它以這種方式對Qt中的所有項目視圖小部件起作用(但是其中一些具有允許您在創建時執行此操作的構造函數)

從前面鏈接的頁面:

列表小部件的構造方式與任何其他小部件相同:

QListWidget *listWidget = new QListWidget(this);

列表項可以在構造時直接添加到列表小部件:

new QListWidgetItem(tr("Sycamore"), listWidget);
new QListWidgetItem(tr("Chestnut"), listWidget);
new QListWidgetItem(tr("Mahogany"), listWidget); 

它們也可以在沒有父列表小部件的情況下構建,並在以后添加到列表中:

QListWidgetItem *newItem = new QListWidgetItem;
newItem->setText(itemText);
listWidget->insertItem(row, newItem);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM