qt qml QListview обновляется медленно - PullRequest
0 голосов
/ 06 января 2020

Я обновляю qml Listview из c ++ как;

в 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 Listview, когда я нажимаю кнопку на qml сторона, вызвав

frmlisteci.listeGuncelle()

Но когда я делаю эту процедуру после монтирования (можно сказать, обновляя список), код замедляется и ожидает в этой строке:

listeElemanlar.setStringList(userAyarlari);

В чем может быть причина?

1 Ответ

0 голосов
/ 07 января 2020

Я обнаружил, что проблема вызвана stackview ....

Я перемещаюсь между страницами по stackview.pop. Я изменил поп, чтобы заменить, и проблема решена ....

...