Size: a a a

2020 July 15

VK

Valentin Kornienko in Qt
FPOHTMEH
Почему бы не сделать одну модель, а на каждой странице делать свой QSortFilterProxyModel  с условием, условно "sourceId = <номер страницы>" ?
Хм. Я не знал, что так можно( про прокси модели не знал)
источник

VK

Valentin Kornienko in Qt
Я просто хотел максимально разграничить эти данные, ан сколько это возможно
источник

F

FPOHTMEH in Qt
Valentin Kornienko
Я просто хотел максимально разграничить эти данные, ан сколько это возможно
Реализуй наверное QAbstractListModel которая возвращает данные - ссылки на вложенные модели. Если что-то не получится, пиши
источник

ПК

Побитый Кирпич... in Qt
У меня есть условный std::thread, который создаёт данные. Как мне организовать программу, чтобы эти данные вывести? Я так понимаю, нельзя внутри этого потока менять ГУЙ. Другими словами, мне надо каким то образом выполнить произвольный код в ГУЙ потоке. Как это лучше всего сделать?
источник

AS

Anatoly Shirokov in Qt
Побитый Кирпич
У меня есть условный std::thread, который создаёт данные. Как мне организовать программу, чтобы эти данные вывести? Я так понимаю, нельзя внутри этого потока менять ГУЙ. Другими словами, мне надо каким то образом выполнить произвольный код в ГУЙ потоке. Как это лучше всего сделать?
именно std::thread?
источник

ПК

Побитый Кирпич... in Qt
Anatoly Shirokov
именно std::thread?
Нет, просто поток, который никак с Qt не связан
источник

VK

Valentin Kornienko in Qt
Побитый Кирпич
У меня есть условный std::thread, который создаёт данные. Как мне организовать программу, чтобы эти данные вывести? Я так понимаю, нельзя внутри этого потока менять ГУЙ. Другими словами, мне надо каким то образом выполнить произвольный код в ГУЙ потоке. Как это лучше всего сделать?
Тебе надо перекинуть данные в UI поток
источник

Е

Егор in Qt
А если есть неявная конверсия для типа Datatype между С++ и QML, но нет таковой для QList<DataType>, через Q_DECLARE_METATYPE регать для использования?
источник

ПК

Побитый Кирпич... in Qt
Valentin Kornienko
Тебе надо перекинуть данные в UI поток
Да, как это лучше всего сделать, при этом чтоб гуй поток не блочился
источник

VK

Valentin Kornienko in Qt
Для этого можно сделать очередь, которая в UI потоке лежит, перебрасывать вызов туда в виде лямбды, например. И UI поток будет из этой очереди уже выгребать события
источник

VK

Valentin Kornienko in Qt
Побитый Кирпич
Да, как это лучше всего сделать, при этом чтоб гуй поток не блочился
Блокируй только очередь, а в UI поток периодически вызывай обработку этих событий
источник

VK

Valentin Kornienko in Qt
Тебе достаточно спинлока по-хорошему, чтобы это сделать
источник

ПК

Побитый Кирпич... in Qt
Valentin Kornienko
Для этого можно сделать очередь, которая в UI потоке лежит, перебрасывать вызов туда в виде лямбды, например. И UI поток будет из этой очереди уже выгребать события
А разве в сигналах нет  такого механизма под капотом, я думал можно как то их тут заюзать, чтоб Qt сам всю сложность сделал
источник

VK

Valentin Kornienko in Qt
Если у тебя Qt поток- то да, если был сделан коннект и указан QuedConnection:
https://doc.qt.io/qt-5/qt.html#ConnectionType-enum
то слот, приконнекченный в UI-потоке будет вызван в UI потоке.
источник

Е

Егор in Qt
Побитый Кирпич
А разве в сигналах нет  такого механизма под капотом, я думал можно как то их тут заюзать, чтоб Qt сам всю сложность сделал
А тебе не пример отсюда нужен https://doc.qt.io/qt-5/qthread.html?
источник

VK

Valentin Kornienko in Qt
Если у тебя DirectConnection - то слот будет вызван в потоке, который инициировал вызов сигнала
источник

ПК

Побитый Кирпич... in Qt
Valentin Kornienko
Если у тебя Qt поток- то да, если был сделан коннект и указан QuedConnection:
https://doc.qt.io/qt-5/qt.html#ConnectionType-enum
то слот, приконнекченный в UI-потоке будет вызван в UI потоке.
А если у меня std::thread, то это не выйдет сделать?
источник

VK

Valentin Kornienko in Qt
Нет, в таком случае тебе надо об этом заботится самому
источник

ПК

Побитый Кирпич... in Qt
Егор
А тебе не пример отсюда нужен https://doc.qt.io/qt-5/qthread.html?
Там QtThread, с этим у меня проблем нет
источник

Е

Егор in Qt
Побитый Кирпич
Там QtThread, с этим у меня проблем нет
А, я думал стд тхреад для примера был
источник