gpt4 book ai didi

c++ - QAbstractListModel 在 Qt::DisplayRole 上返回意外结果

转载 作者:行者123 更新时间:2023-12-03 06:56:47 25 4
gpt4 key购买 nike

我创建了一个非常小的 QAbstractListModel,它有两个角色,displaytest

InvoiceTabModel::InvoiceTabModel(QObject *parent): QAbstractListModel(parent)
{

}

QVariant InvoiceTabModel::data(const QModelIndex &index, int role) const
{
Q_UNUSED(index)
if(role == 123)
return QVariant("testRole");
return QVariant("displayRole");
}

int InvoiceTabModel::rowCount(const QModelIndex &parent) const
{
Q_UNUSED(parent)
return 3;
}

QHash<int, QByteArray> InvoiceTabModel::roleNames() const
{
return { {Qt::DisplayRole, "display"}, {123, "test"} };
}

我把这个模型连接到一个中继器上

Repeater{
id: invoiceTab
anchors.fill: parent
model: invoice.tabmodel
Button{
width: 100
height: parent.height
text: test
//text: display
}
}

问题是,当我使用 display 角色时,文本显示为 2,但是当我在 qml 中使用 test 时,字符串显示正确

使用test角色

enter image description here

使用display角色时

enter image description here

这个2是从哪里来的?

最佳答案

display 是 Button 的一个属性。

当使用来自模型的数据时,始终使用 model. 前缀来消除歧义 (model.display)。

关于c++ - QAbstractListModel 在 Qt::DisplayRole 上返回意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63086868/

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