Size: a a a

2021 February 27

KT

Kathy Ti in Qt
)
источник

AS

Anatoly Shirokov in Qt
Kathy Ti
пол третьего, голова не варит
камчатка?
источник

з

зима in Qt
Anatoly Shirokov
камчатка?
фоточки кинуть потом? недельку там буду находится..)
источник

AS

Anatoly Shirokov in Qt
зима
фоточки кинуть потом? недельку там буду находится..)
я заочно полюбил эти края, сын был в походе
источник

KT

Kathy Ti in Qt
Anatoly Shirokov
камчатка?
Здравствуйте, Анатолий. 😊 Нет, Хабаровск.
источник

KT

Kathy Ti in Qt
Макс Воробьев
тогда в qml можно будет сразу на свойства прибиндиться, без обработчиков сигнала
Просто хотелось с сигналами подразобраться, единожды я их использовала, хотелось развить навык.😊 Увлеклась, а слона не заметила. Да и долго в кьюти не писала. Вот на выходных плейер пишу.
источник

AS

Anatoly Shirokov in Qt
Kathy Ti
Здравствуйте, Анатолий. 😊 Нет, Хабаровск.
Здорово, у нас автоматизируемый нами порт в Находке
источник

KT

Kathy Ti in Qt
Анатолий. Я вот уперлась с бородатых времен в асинхронную загрузку плейлиста. Ну допустим я в тред вынесу подгрузку из файла списка треков(с++), но listview в qml строится в главном потоке, и пока он не построится через list.append(), он повесит гуи? Или как?
источник

AS

Anatoly Shirokov in Qt
Kathy Ti
Анатолий. Я вот уперлась с бородатых времен в асинхронную загрузку плейлиста. Ну допустим я в тред вынесу подгрузку из файла списка треков(с++), но listview в qml строится в главном потоке, и пока он не построится через list.append(), он повесит гуи? Или как?
повесит
источник

AS

Anatoly Shirokov in Qt
а большие списки?
источник

AS

Anatoly Shirokov in Qt
поэтому я бы не делал через append
источник

AS

Anatoly Shirokov in Qt
я бы написал модель, которая будет принимать на вход список треков и одной операцией этот бы список замещал после того, как он подгрузится в треде
источник

AS

Anatoly Shirokov in Qt
это будет гораздо быстрее
источник

KT

Kathy Ti in Qt
Anatoly Shirokov
я бы написал модель, которая будет принимать на вход список треков и одной операцией этот бы список замещал после того, как он подгрузится в треде
Вы имеете в виду с++ модель, верно?
источник

AS

Anatoly Shirokov in Qt
Kathy Ti
Вы имеете в виду с++ модель, верно?
да, поскольку каждый append будет файрить событие и дергать вид
источник

KT

Kathy Ti in Qt
Anatoly Shirokov
да, поскольку каждый append будет файрить событие и дергать вид
Это мы не проходили. Видимо придётся курить эту модель.
источник

GK

Grigorii Kolesnikov ... in Qt
Anatoly Shirokov
я бы написал модель, которая будет принимать на вход список треков и одной операцией этот бы список замещал после того, как он подгрузится в треде
Имеется ввиду унаследоваться от QAbstractTableModel например?
источник

AS

Anatoly Shirokov in Qt
Grigorii Kolesnikov ☭
Имеется ввиду унаследоваться от QAbstractTableModel например?
от QAbstactListModel
источник

AS

Anatoly Shirokov in Qt
Kathy Ti
Это мы не проходили. Видимо придётся курить эту модель.
struct Track {
   Q_GADGET
public:
   QString name;
};

class TrackModel : public QAbstractListModel {
   Q_OBJECT

   enum { TRACK_NAME_ROLE = Qt::UserRole + 1 };

public:
   virtual int rowCount(const QModelIndex& parent) const override
   {
       if (parent.isValid()) {
           return 0;
       }
       return m_list.size();
   }
   virtual QVariant data(const QModelIndex& index, int role) const override
   {
       if (index.isValid()) {
           if (role == TRACK_NAME_ROLE) {
               return m_list.at(index.row()).name;
           }
       }
       return QVariant();
   }
   virtual QHash<int, QByteArray> roleNames() const override
   {
       static QHash<int, QByteArray> roles { std::make_pair(TRACK_NAME_ROLE, QByteArray("name")) };
       return roles;
   }

public:
   void setList(QList<Track> list)
   {
       beginResetModel();
       m_list = list;
       endResetModel();
   }

private:
   QList<Track> m_list;
};
источник

AS

Anatoly Shirokov in Qt
setList - как раз и выполнит работу по сбросу модели. вид получит всего два события
источник