Congratulations to our 2022 Qt Champions!

Best way to populate/update/delete info from a list(ListView/ListModel) from C++

  • Hi everyone.
    I'm looking for a best way to populate, update a certain element or delete it from a list(LiswView) from C++
    The list will be updated from multiple threads.

    The best way I found so far is to create a threaded ListModel like this one: "Threaded ListModel Example":

    then I will access javascript function from C++ using "QMetaObject::invokeMethod":

    Do you think my method is safe in terms of performance because a lot of ListModel elements will be updated in the same time. Also the ListModel will have around 200-300 elements.

    Do you think of a better method to achieve this?

    Also an informative question , how do I send this parameter from c++ using invokeMethod?
    @var msg = {'action': 'appendCurrentTime', 'model': listModel};@

  • Hi,

    If the model is primarily going to be manipulated from C++, you could also consider writing a custom QAbstractListModel subclass (you'll need to handle the threading yourself though)


Log in to reply