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);
理由は何ですか?