Size: a a a

2020 May 30

M

Mr_ChAI in Qt
Какую IDE лучше для Qt? У Qt Creator интерфес неудобный, выбираю между CLion и KDevelop
источник

SK

Stas Koynov in Qt
Mr_ChAI
Какую IDE лучше для Qt? У Qt Creator интерфес неудобный, выбираю между CLion и KDevelop
интерфейс? а что именно не удобно?
источник

Е

Егор in Qt
Mr_ChAI
Какую IDE лучше для Qt? У Qt Creator интерфес неудобный, выбираю между CLion и KDevelop
clion поумнее будет наверное, если студ. подписка есть то можно взять, хотя мне не понравился
источник

M

Mr_ChAI in Qt
Stas Koynov
интерфейс? а что именно не удобно?
С темной темной не дружит
источник

M

Mr_ChAI in Qt
Егор
clion поумнее будет наверное, если студ. подписка есть то можно взять, хотя мне не понравился
У меня за опенсорц подписка
источник

AU

Abu Umar in Qt
Mr_ChAI
С темной темной не дружит
Действительно неудобный
источник

B

Bril in Qt
Stas Koynov
да баг, у них получается так, первый финишед прилетает для реального ответа(и мы вправе делать deleteLater), если же в этом цикле мы еще сделаем дисконнект клиенту, финишед прилетит еще раз, с ошибкой Абортед. Я вылетал с сигфолтом, потому что я делал reply = nullptr в лямбде, а он заходил в нее второй раз!. теперь приходится делать обнуление только когда прилетит сигнал destroyed. Но лямбда для обработки ответа вызывается два раза (тут ошибка), но я не вылетаю.
Вот дисконент делать непосредственно в слоте финишид не есть правильно, скорее всего ошибка абортед и прилетает из-за этого что репли еще до конца не завершился пока не отработал его слот.
В доках нотис про то что репли удалять в финишед нельзя, и юзать надо deleteLater не случаен, он как раз для того что бы дождаться полного завершения работы слота и всех потрохов репли.
Дисконект тоже по сути убивает текущий репли.
С QNetworkReply скорее всего тоже будет такое же поведение
источник

SK

Stas Koynov in Qt
Bril
Вот дисконент делать непосредственно в слоте финишид не есть правильно, скорее всего ошибка абортед и прилетает из-за этого что репли еще до конца не завершился пока не отработал его слот.
В доках нотис про то что репли удалять в финишед нельзя, и юзать надо deleteLater не случаен, он как раз для того что бы дождаться полного завершения работы слота и всех потрохов репли.
Дисконект тоже по сути убивает текущий репли.
С QNetworkReply скорее всего тоже будет такое же поведение
я знаю и я не делаю дисконнект клиенат в слоте реплая!, я делаю это вообще по таймеру в другом слоте!, просто получается, что если слот реплая и слот таймера отработали в одном цикле. то финишед прилетел дважды. один раз от самого реплая, мол забирай данные. второй раз из-за того, что клиент его дропнул с АбортетЕррор. тем самы я захожу в слот реплая дважды! сам реплай я удаляю через deleteLater как и должно.
источник

SK

Stas Koynov in Qt
Я не встречал в доках, что если вы сделали коннект к сигналу финишед, то он должен быть многоразовым и вам запрещено там что-то эдокое делать даже со своими данными. скажем смещать их или еще чего. потому что возможна ситуация что в слот мы будем заходить N раз (как минимум дважды, если так сложаться звезды)
источник

M

Minmaxminor in Qt
Mr_ChAI
С темной темной не дружит
Дружит.
источник

AS

Anatoly Shirokov in Qt
Stas Koynov
А кто мне скажет в Qt есть некое правило как должны обрабатываться сигналы finished? у меня ситуация что он прилетает ко мне дважды!. в первой лямбде я вызывал deleteLater. во второй ясный пень я словил сигфолт.
а минипример есть?
источник

SK

Stas Koynov in Qt
Anatoly Shirokov
а минипример есть?
хмм нужно модбас сервак получается сделать.... надо подумать. я нашел в исходниках строчки кто и почему так происходит.
источник

SK

Stas Koynov in Qt
там сделано вот так:
```
void QModbusReply::setFinished(bool isFinished)
{
   Q_D(QModbusReply);
   d->m_finished = isFinished;
   if (isFinished)
       emit finished();
}
```
а надо получается так как-то:
```
void QModbusReply::setFinished(bool isFinished)
{
   Q_D(QModbusReply);
   auto old_value = d->m_finished;
   d->m_finished = isFinished;

   if (!old_value && isFinished)
       emit finished();
}
```
источник

M

Mr_ChAI in Qt
Minmaxminor
Дружит.
Да не, там белое все
источник

M

Minmaxminor in Qt
Mr_ChAI
Да не, там белое все
Покажи свои настройки среды и редактора.
источник

M

Mr_ChAI in Qt
Minmaxminor
Покажи свои настройки среды и редактора.
Снес его уже месяц как
источник

M

Mr_ChAI in Qt
Когда еще на кедах сидел
источник

M

Mr_ChAI in Qt
С Breeze Dark
источник

SK

Stas Koynov in Qt
Anatoly Shirokov
а минипример есть?
если найду время, постараюсь сделать, и открыть тикет, но мне в любом случае, придется свою версию начинать писать, стандартная не поддерживает raw пакеты (мой баг висит уже год, может даже больше)
источник

AS

Anatoly Shirokov in Qt
Stas Koynov
если найду время, постараюсь сделать, и открыть тикет, но мне в любом случае, придется свою версию начинать писать, стандартная не поддерживает raw пакеты (мой баг висит уже год, может даже больше)
ну, тикет тоже хорошо, во всяком случае они либо подтвердят проблему, либо ...
источник