gpt4 book ai didi

python - 如何使用 PySide 向 QTableWidget 添加数据

转载 作者:行者123 更新时间:2023-11-28 18:48:27 25 4
gpt4 key购买 nike

这个问题的答案要么是在 C++ 中,要么没有真正回答我的问题。我正在学习 python,我不是专业程序员,我已经学习了这门语言但还没有构建实时应用程序。

  • 我使用 QT 设计了用户界面。
  • 我将这个用户界面导入到我的主程序中。

用户界面[附截图]*努力实现:*

  • 我想将数据添加到 QLineEdit 中,当我点击“添加行”按钮时,它应该将数据输入到 QTableWidget 中。

  • 我已经使用此语句将 UI 导入到我的主程序中从“firstApp”导入 PyMainWindow

  • 是否需要在主程序中为 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为我要添加的数据##

我得到的错误是item doesn't exist globally。我明白这一点,但我在想,因为我已经将 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)

请帮忙。

最佳答案

您输入的数据应该是您的表格标题?看起来很不寻常。

来自documentation :

Items are constructed outside the table before being added to the table at the required location:

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 中的所有项目 View 小部件都以这种方式工作(但其中一些具有允许您在创建时这样做的构造函数)

从前面链接的页面:

A list widget is constructed in the same way as any other widget:

QListWidget *listWidget = new QListWidget(this);

List items can be added directly to the list widget when they are constructed:

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

They can also be constructed without a parent list widget and added to a list at some later time:

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

关于python - 如何使用 PySide 向 QTableWidget 添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16889443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com