首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QSqlRelationalTableModel -数据函数返回字符串而不是代码

QSqlRelationalTableModel -数据函数返回字符串而不是代码
EN

Stack Overflow用户
提问于 2014-06-05 20:23:50
回答 2查看 188关注 0票数 1

Am子类QSqlRelationalTableModel.

代码语言:javascript
复制
class Titles(QSqlRelationalTableModel):
    def __init__(self):
        QSqlRelationalTableModel.__init__(self)

        self.setTable("titles")
        self.setRelation(self.fieldIndex("type"), QSqlRelation("title_type", "id", "type"))         
        self.select()

        print self.record(0).value("title").toString() # 1

    def data(self, i, role):
        if role == Qt.DisplayRole:
            print  self.record(0).value("title").toString() # 2 
            return self.record(0).value("title").toString() # 3

titles = Titles() 

print iswcTitlesModel.record(0).value("title").toString() # 4

所有上述打印空格(它返回正确的行数,但仅作为空白)。如果删除数据函数,请打印#1和#4。如果执行返回"string",则将填充所有项。模型被实例化,并且预期的返回代码在模型定义之外工作。尝试了多个其他SQL表,所有这些表都有一个关系,但是即使没有关系,它也不能工作。有人能看到出什么问题了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-06 17:35:30

找到了答案:

代码语言:javascript
复制
def data(self, i, role):
        if role == Qt.DisplayRole:
            if i.column() == 1:
                return QVariant("col 1 custom data")
            else:
                return super(QSqlTableModel, self).data(i, role)

因此,如果i.column() ==所需的列,则显示所需的任何内容。否则,返回超类(QSqlTableModel)已经映射到模型中的数据。

票数 0
EN

Stack Overflow用户

发布于 2014-06-05 20:51:46

尝试在关系中使用域

代码语言:javascript
复制
    self.setRelation(self.fieldIndex("type"), QSqlRelation("title_type", "title_type"."id", "title_type"."type"))         

有类似的问题,因为两个表中都有"id"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24069603

复制
相关文章

相似问题

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