python - 在表模型中设置列标题

标签 python pyqt

我无法设置在 TableView 中创建的新列的标题。

这是代码:

def addColumn(self):
    if self.tableView.selectionModel().hasSelection():
        indexes = self.tableView.selectionModel().selectedColumns()
        for index in sorted(indexes):
            print('Adding column %d...' % index.column())
            self.QSModel.insertColumn(index.column()+1)
            self.QSModel.setHorizontalHeaderItem(index.column()+1,'XXX')
    else:
        print('No col selected!')

我得到的错误是:

self.QSModel.setHorizontalHeaderItem(index.column()+1,'XXX')
TypeError: setHorizontalHeaderItem(self, int, QStandardItem): argument 2 has unexpected type 'str'

如何解决?

最佳答案

由于错误和 the docs指出,预期的第二个参数是 QStandardItem,而不是字符串,在您的情况下它应该是:

self.QSModel.setHorizontalHeaderItem(index.column() + 1, QStandardItem('XXX'))

关于python - 在表模型中设置列标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54378060/

相关文章:

python - MongoDB:创建嵌入文档

python - 如何在 Bokeh 文档中找到带有 selenium webdriver 的按钮?

qt - 使用 QTreeWidget 项目的应用样式表修改默认小部件文本颜色

python - 如何停止重定向移动请求 Nginx Flask?

用于简单递归的Python装饰器?在标准库或其他地方?

python - 在拖放中保留 QStandardItem 子类

python - 如何杀死PyQt5中的QRunnable?

qt - PyQt4 : QTextEdit start in nth line

python - 将复选框动态插入到 tabWidget 中

Python 运算符重载 __div__