如何使用PySid向QTableWidget添加数据

2024-06-07 03:24:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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

  • 我用QT设计了用户界面。
  • 我把这个用户界面导入我的主程序。

用户界面[附截图] *尝试实现:*

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

  • 我已经使用以下语句将UI导入到主程序中 从“firstApp”导入PyMain窗口

  • 我需要在主程序中创建新对象以便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) 

35;##其中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)

请帮忙。


Tags: 数据答案self应用程序uiusernameitem用户界面
1条回答
网友
1楼 · 发布于 2024-06-07 03:24:41

你输入的数据应该是你的表头吗?似乎很不寻常。

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中的所有item 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);

相关问题 更多 >