crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Треп из темы Секреты и интересные возможности Qt, сюда будет переносится треп...
Litkevich Yuriy
  опции профиля:
сообщение 25.9.2008, 16:23
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Есть предложение перенести, действительно полезные, решения из этой ветки в вики
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
SABROG
  опции профиля:
сообщение 13.3.2009, 21:26
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(LE0N @ 13.3.2009, 20:28) *
Если не видно разницы, то зачем платить больше? ©ТАЙД ИЛИ КИПЯЧЕНИЕ

Если код делает тоже самое, то это не значит, что нет никакой разницы. Попробую пояснить. QTimer::singleShot внутри производит connect и emit сигнала timeout(). Т.к. соединение Qt::QueuedConnection, то формируется event, который помещается в очередь событий. QMetaObject::invokeMethod минует стадию connect'a и emit'a, и сразу помещает эвент в очередь. Конечно в скорости особо мы врятли выйграем, но просто как факт того, что разница есть.
Цитата(LE0N @ 13.3.2009, 20:28) *
Этот код проще конструкции в одну строку с макросом?
Зачем выкидывать сюда не "секреты и интересные возможности", а индусятину ? :( Лучше бы макрос тот сюда закинул.

Макросы в C++ слишком ограничены. Например нельзя получить номер enum'a по его названию. Или узнать количество enum'ов без добавления последним enumoм что-то типа thisIsEnd. Для простеньких вещей может и сгодится.

И вообще раздел посвящен Qt, а не C++.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 13.3.2009, 21:41
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(SABROG @ 13.3.2009, 21:26) *
Если код делает тоже самое, то это не значит, что нет никакой разницы. Попробую пояснить. QTimer::singleShot внутри производит connect и emit сигнала timeout(). Т.к. соединение Qt::QueuedConnection, то формируется event, который помещается в очередь событий. QMetaObject::invokeMethod минует стадию connect'a и emit'a, и сразу помещает эвент в очередь. Конечно в скорости особо мы врятли выйграем, но просто как факт того, что разница есть.

Согласен с SABROG, invokeMethod делает тоже, только более идиологически правильней. :)
QTimer::singleShot внутри себя создает объект QSingleShotTimer, коннектится, короче делает некоторую не очень нужную работу. Просто это первое что пришло мне на ум. ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Litkevich Yuriy   Треп из темы Секреты и интересные возможности Qt   25.9.2008, 16:23
- - void*   было бы очень даже неплохо   30.10.2008, 0:35
- - Litkevich Yuriy   void*, присоеденяйся к переносу У нас с Эдиком уж...   30.10.2008, 0:42
- - void*   я бы с удовольствием, да мне даже на мой проект вр...   30.10.2008, 0:56
- - ViGOur   Цитата(SABROG @ 8.12.2008, 16:17) Вопрос....   8.12.2008, 16:21
- - molchanoviv   Хм. Интересно. Обязательно гляну на досуге. Поигра...   8.12.2008, 16:46
- - ViGOur   Может подобные интересности сразу в FAQ писать? Ка...   8.12.2008, 17:21
- - Litkevich Yuriy   Цитата(ViGOur @ 8.12.2008, 20:21) сразу в...   8.12.2008, 17:31
- - molchanoviv   Очень часто так поступаю   9.12.2008, 14:42
- - ViGOur   Цитата(SABROG @ 9.12.2008, 14:51) В принц...   9.12.2008, 15:15
- - ViGOur   SABROG, все правильно говоришь. ИМХО, созданиющий ...   9.12.2008, 15:28
- - molchanoviv   В вику перенеси.   9.12.2008, 15:37
- - ViGOur   Цитата(molchanoviv @ 9.12.2008, 15:37) В ...   9.12.2008, 15:40
- - molchanoviv   В этой теме тогда получается какой-то бред. Может ...   9.12.2008, 16:04
- - ViGOur   К сожалению копировать сообщения нельзя! А во...   9.12.2008, 16:40
- - molchanoviv   А может тогда просто удалять весь треп через опред...   9.12.2008, 16:48
- - ViGOur   Может тогда при трепе в той теме обязать цитироват...   9.12.2008, 16:53
- - molchanoviv   Да больно много цитировать. К тому-же если несколь...   9.12.2008, 17:00
- - ViGOur   Цитата(molchanoviv @ 9.12.2008, 17:00) По...   9.12.2008, 17:08
- - molchanoviv   Тут другого выхода нет. Удалять и все.   9.12.2008, 17:11
- - Litkevich Yuriy   я думаю можно затевать обычную тему, как кандидат ...   9.12.2008, 17:57
- - molchanoviv   У меня было наподобие(Помоему из книги Бланшет и С...   9.2.2009, 20:56
- - ViGOur   Цитата(Константин @ 11.2.2009, 6:15) ну и...   11.2.2009, 9:10
- - LE0N   ЦитатаЭквивалентно emit signalName с connection ty...   13.3.2009, 20:28
- - SABROG   Цитата(LE0N @ 13.3.2009, 20:28) Если не в...   13.3.2009, 21:26
|- - BRE   Цитата(SABROG @ 13.3.2009, 21:26) Если ко...   13.3.2009, 21:41
- - kwisp   офтоп(не в тему) Цитата(SABROG @ 13.3.2009, 2...   13.3.2009, 21:38
- - SABROG   Как бы там нибыло, я не говорю, что все что я гово...   14.3.2009, 1:05


Ответить в данную темуНачать новую тему
Теги
Нет тегов для показа


5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.11.2024, 20:58