首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTableWidget整数

QTableWidget整数
EN

Stack Overflow用户
提问于 2012-10-26 01:30:22
回答 1查看 10.7K关注 0票数 5

我正在尝试在我的QTableWidget中插入和显示整数。它们不会显示。如果我将所有内容都转换为字符串,但不能对列进行数字排序--只能按词法排序(1、10、100等),那么它就可以工作。这是在使用PyQt。

我已经尝试了一些建议的解决方案,使用QTableWidgetItem.setData(someRole,intValue),但是没有任何显示。我试过了,Qt.UserRole,DisplayRole和编辑角色。(我不明白为什么需要这些角色来显示整数,但我只是遵循了示例)。我的具体代码是:

代码语言:javascript
复制
    item = QTableWidgetItem()
    item.setData = (Qt.DisplayRole,intValue)
    myTable.setItem(row, column, item)

以下代码可以工作,但仅适用于字符串:

代码语言:javascript
复制
    item = QTableWidgetItem(str(intValue))
    myTable.setItem(row, column, item)

此外,读回数据的建议仅显示对象位置,而不显示实际数据。例如,使用Eric作为解释器shell:

item.data(Qt.DisplayRole)

返回: 0x1f01fa60处的PyQt4.QtCore.QVariant对象

或者这样:

item.data(Qt.EditRole).data()

返回: 0x1e904a80处的sip.voidptr对象

任何洞察力都是值得欣赏的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-26 20:59:02

你走在了正确的道路上。您的代码不能正常工作,因为您没有调用QTableWidgetItemsetData()函数,而是试图为它赋值。

代码语言:javascript
复制
item.setData = (Qt.DisplayRole,intValue)

而不是

代码语言:javascript
复制
item.setData(Qt.DisplayRole,intValue)

此外,在回读数据时,不仅显示位置,而且将数据本身显示为QVariant。您会发现,通过转换QVariant (通过其.toString()方法),item.data(Qt.DisplayRole).toString()将以字符串的形式返回数据。

这里有一个快速的工作示例,只是为了演示:

代码语言:javascript
复制
import sys
from PyQt4.QtGui import QApplication, QWidget, QTableWidget, QTableWidgetItem, QVBoxLayout
from PyQt4.QtCore import Qt

class Widget(QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)

        self.widget_layout = QVBoxLayout()
        self.table_widget = QTableWidget(101, 1)
        self.table_widget.setSortingEnabled(True)

        self.widget_layout.addWidget(self.table_widget)
        self.setLayout(self.widget_layout)

        for num in xrange(101):
            item = QTableWidgetItem()
            item.setData(Qt.EditRole, num)
            self.table_widget.setItem(num, 0, item)


if __name__ == '__main__':
  app = QApplication(sys.argv)
  widget = Widget()
  widget.show()
  sys.exit(app.exec_())
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13074035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档