qt qml QListview更新缓慢

时间:2020-01-06 09:04:05

标签: qt listview qml qt-quick qstringlist

我正在从c ++更新qml Listview;

在main.cpp;

listeci frmlisteci;
engine.rootContext()->setContextProperty("listeElemanlar", &frmlisteci.listeElemanlar);

在Liste.qml中;

        ListView{
            id: listeciElemanlar
            anchors.fill: parent
            model: listeElemanlar
            delegate: Text{
                text: display
                verticalAlignment: Text.AlignBottom
                width : parent.width
                color: textRengi
                font.pointSize: 30
                leftPadding: 20
            }}

在listeci.h;

public:
    QStringListModel listeElemanlar;
private:
    QStringList userAyarlari;

在listeci.cpp;

listeci::listeci(QObject *parent) : QObject(parent)
{

    // Kullanıcı ayarları elemanları
    userAyarlari.append("Kullanıcı ayarı 01");
    userAyarlari.append("Kullanıcı ayarı 02");
    userAyarlari.append("Kullanıcı ayarı 03");
    userAyarlari.append("Kullanıcı ayarı 04");
    userAyarlari.append("Kullanıcı ayarı 05");
    userAyarlari.append("Kullanıcı ayarı 06");
    userAyarlari.append("Kullanıcı ayarı 07");
    userAyarlari.append("Kullanıcı ayarı 08");
    userAyarlari.append("Kullanıcı ayarı 09");
    userAyarlari.append("Kullanıcı ayarı 10");
    userAyarlari.append("Kullanıcı ayarı 11");
    userAyarlari.append("Kullanıcı ayarı 12");
    userAyarlari.append("Kullanıcı ayarı 13");
    userAyarlari.append("Kullanıcı ayarı 14");
    userAyarlari.append("Kullanıcı ayarı 15");
    userAyarlari.append("Kullanıcı ayarı 16");
    userAyarlari.append("Kullanıcı ayarı 17");
    userAyarlari.append("Kullanıcı ayarı 18");
    userAyarlari.append("Kullanıcı ayarı 19");
}
void listeci::listeGuncelle()
{
    listeElemanlar.setStringList(userAyarlari);
}

通过这些行,当我通过调用

单击qml一侧的按钮时,可以成功创建列表并在qml Listview上显示
frmlisteci.listeGuncelle()

但是当我在挂载后执行此过程时((可以说刷新列表),代码变慢,并在此行上等待:

listeElemanlar.setStringList(userAyarlari);

可能是什么原因?

1 个答案:

答案 0 :(得分:0)

我发现问题是由stackview引起的。...

我正在通过stackview.pop在页面之间导航。 我更换了流行音乐,以解决问题。...