Size: a a a

2020 July 11

AS

Anatoly Shirokov in Qt
ну так
источник

ПК

Побитый Кирпич... in Qt
С QML_INTERFACE не компилится, да, потому что новая перегрузка юзает ::staticMetaObject или типа того
источник

ПК

Побитый Кирпич... in Qt
Anatoly Shirokov
а, ты сделал лайт Q_OBJECT
Вообщем пока не очень понятно как использовать новую перегрузку правильно :)
Для неё нужен staticMetaObject. Его только через Q_GADGET/Q_OBJECT можно добавить?
источник

AS

Anatoly Shirokov in Qt
Побитый Кирпич
Вообщем пока не очень понятно как использовать новую перегрузку правильно :)
Для неё нужен staticMetaObject. Его только через Q_GADGET/Q_OBJECT можно добавить?
да, это метаинформация генерируется moc
источник

ПК

Побитый Кирпич... in Qt
Вопрос насчёт сигналов и слотов в Qt:
connect(obj, &Obj::mouseWheel, [this](QWheelEvent* event)
{
// ...
});
Я правильно понимаю, что такие соединения надо рвать вручную после смерти obj?
источник

ПК

Побитый Кирпич... in Qt
А, нет, всё таки видимо не надо, у меня была неверная инфа
источник

AS

Anatoly Shirokov in Qt
Побитый Кирпич
Вопрос насчёт сигналов и слотов в Qt:
connect(obj, &Obj::mouseWheel, [this](QWheelEvent* event)
{
// ...
});
Я правильно понимаю, что такие соединения надо рвать вручную после смерти obj?
если укажешь контекст, то не надо
источник

IZ

Ilia Zviagin in Qt
Побитый Кирпич
Вопрос насчёт сигналов и слотов в Qt:
connect(obj, &Obj::mouseWheel, [this](QWheelEvent* event)
{
// ...
});
Я правильно понимаю, что такие соединения надо рвать вручную после смерти obj?
Не надо, автоматом рвутся.
источник
2020 July 12

GS

Georgy Shepelev in Qt
Вроде здесь был ответ Анатолия - контекст надо указывать
источник

m

mefest in Qt
Georgy Shepelev
Вроде здесь был ответ Анатолия - контекст надо указывать
если правильно помню, то зависит от отправителя и контекста. если отправитель или контекст будет уничтожен то connect будет "разорван"
источник

m

mefest in Qt
так что можно обойтись и без контекста, но я предпочитаю его указывать
источник

ПК

Побитый Кирпич... in Qt
А контекст это что имеется ввиду в моём случае7
источник

AS

Anatoly Shirokov in Qt
Побитый Кирпич
А контекст это что имеется ввиду в моём случае7
контекст всегда указывает на то в каком потоке будет вызвана лямбда или слот
источник

AS

Anatoly Shirokov in Qt
скажем
Some o1; // принадлежит ui потоку
Some o2; // принадлежит вспомогательному потоку
QObject::connect(&o1, &Some::signal, &o2, []() {
  // обработчик будет вызван в контексте o2, во вспомогательном потоке
});
источник

AN

Alexander N in Qt
mefest
если правильно помню, то зависит от отправителя и контекста. если отправитель или контекст будет уничтожен то connect будет "разорван"
Через deleteLater? Или при обычном delete тоже
источник

AS

Anatoly Shirokov in Qt
Alexander N
Через deleteLater? Или при обычном delete тоже
все равно
источник

m

mefest in Qt
Alexander N
Через deleteLater? Или при обычном delete тоже
при обычном тоже, но когда будет разорван коннект  точно сказать не могу. лучше вызывать deleteLater если не уверен что все правильно.
источник

GS

Georgy Shepelev in Qt
Anatoly Shirokov
скажем
Some o1; // принадлежит ui потоку
Some o2; // принадлежит вспомогательному потоку
QObject::connect(&o1, &Some::signal, &o2, []() {
  // обработчик будет вызван в контексте o2, во вспомогательном потоке
});
и пока о2 жив
источник

AS

Anatoly Shirokov in Qt
Georgy Shepelev
и пока о2 жив
+1
источник

ПК

Побитый Кирпич... in Qt
Anatoly Shirokov
скажем
Some o1; // принадлежит ui потоку
Some o2; // принадлежит вспомогательному потоку
QObject::connect(&o1, &Some::signal, &o2, []() {
  // обработчик будет вызван в контексте o2, во вспомогательном потоке
});
А в моём случае нет контекста, только sender и лямбда-слот
источник