Size: a a a

2020 February 06

GS

Georgy Shepelev in Qt
не читай & советуй
источник

m

mefest in Qt
Alexander N
LD_LIBRARY_PATH для линухи
вроде для qml не хватает
источник

VS

Vladimir Suisei in Qt
Допустим есть некий слот, который вызывается в ивентлупе.
Можно ли как-то сделать так, чтобы определенная функция вызвалась строго после завершения этого слота? Гарантировать, что между выходом из слота и стартом функции ничего другого не влезет.
источник

П

Павел in Qt
ещё для определения окончания вектора открыл для себя std::next, и вот так это можно проверить:
if(std::next(iter) != vec.end()) {
 std::cout << ",";
}
у меня это стабильно отрабатывает, небольшой вопрос вызывает момент когда мы итерируемся по последнему элементу, в таком случае std::next(iter) не может ли привести к крашу или так всё же безопасно делать? А то в доке возможности состояние ошибки не вижу
источник

m

mefest in Qt
Vladimir Suisei
Допустим есть некий слот, который вызывается в ивентлупе.
Можно ли как-то сделать так, чтобы определенная функция вызвалась строго после завершения этого слота? Гарантировать, что между выходом из слота и стартом функции ничего другого не влезет.
вызвать функцию в конце слота?
источник

VS

Vladimir Suisei in Qt
mefest
вызвать функцию в конце слота?
Нет, надо из слота обязательно выйти
источник

M

Mr.Mait in Qt
Vladimir Suisei
Нет, надо из слота обязательно выйти
А что там особенного в слоте, что нельзя выполнить функцию в конце слота?
источник

МВ

Макс Воробьев in Qt
Vladimir Suisei
Нет, надо из слота обязательно выйти
сделай через делегирование, а не сигнал-слот
источник

VS

Vladimir Suisei in Qt
Макс Воробьев
сделай через делегирование, а не сигнал-слот
Что это значит?
источник

m

mefest in Qt
Vladimir Suisei
Нет, надо из слота обязательно выйти
сделай обертку слот где будет вызов слота а потом сразу вызов функции и отправляй в eвент луп обертку
источник

EG

Evgeniy Gagarin in Qt
Павел
ещё для определения окончания вектора открыл для себя std::next, и вот так это можно проверить:
if(std::next(iter) != vec.end()) {
 std::cout << ",";
}
у меня это стабильно отрабатывает, небольшой вопрос вызывает момент когда мы итерируемся по последнему элементу, в таком случае std::next(iter) не может ли привести к крашу или так всё же безопасно делать? А то в доке возможности состояние ошибки не вижу
Нужна дополнительная проверка на iter!=vec.end()
источник

МВ

Макс Воробьев in Qt
делегирование настолько нынче непопулярно?
источник

П

Павел in Qt
Evgeniy Gagarin
Нужна дополнительная проверка на iter!=vec.end()
а, так она у меня в for-цикле внутрь которого я вкладываю ту проверку
источник

m

mefest in Qt
Evgeniy Gagarin
Нужна дополнительная проверка на iter!=vec.end()
я думаю она у него в цикле
источник

EG

Evgeniy Gagarin in Qt
Павел
а, так она у меня в for-цикле внутрь которого я вкладываю ту проверку
А, ну и вообще забудь тогда. Пока не пытаешься разыменовать невалидный итератор всё ок
источник

МВ

Макс Воробьев in Qt
Vladimir Suisei
Что это значит?
источник

П

Павел in Qt
позвольте ещё один дурацкий вопрос: а кто как пишет в теле циклов итерирование итератора?
зашквар ли писать iter++ или это норма
или же правильно писать std::advance(iter, 1) ?
источник

МВ

Макс Воробьев in Qt
Павел
позвольте ещё один дурацкий вопрос: а кто как пишет в теле циклов итерирование итератора?
зашквар ли писать iter++ или это норма
или же правильно писать std::advance(iter, 1) ?
++iter
источник

П

Павел in Qt
я для себя разницу с iter++ не вижу, в данном случае
источник

m

mefest in Qt
Павел
позвольте ещё один дурацкий вопрос: а кто как пишет в теле циклов итерирование итератора?
зашквар ли писать iter++ или это норма
или же правильно писать std::advance(iter, 1) ?
лучше по вопросам не по Qt идти в чат новичков c++ (@supapro)
источник