Секреты и интересные возможности Qt |
Здравствуйте, гость ( Вход | Регистрация )
Секреты и интересные возможности Qt |
void* |
23.7.2008, 22:28
Сообщение
#1
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
Предлагаю в данную тему скидывать все известные вам интересные фичи и "секреты" Qt. Думаю, так можно собрать неплохую коллекцию интересных возможностей Qt, где каждый сможет найти что-нибудь интересное для себя или узнать новое. Начну сам:
1) Макрос Q_UNUSED позволяет избежать предупреждений по поводу неиспользования какой-то переменной. Пример:
2) Функция QString Qt::escape(const QString &plain) позволяет конвертировать в строке, задаваемую параметром plain метасимволы HTML (<, >, &) в их HTML-эквиваленты. Пример:
3) Макрос Q_PROPERTY позволяет в некоторых случаях избежать приведения. Пример:
to be continued... P.S. Надеюсь тема не умрет, и каждый будет ее поддерживать своими находками ----------------------- Ссылки на интересные возможности: 1) QComboBox-Изменение размера выпадающего списка 2) qmake, как обратится к текущему каталогу? Сообщение отредактировал Litkevich Yuriy - 31.1.2009, 12:52 |
|
|
SABROG |
21.6.2010, 18:23
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Реализовал установку приоритета потока в параллельном программировании.
Как многие заметили в Qt есть метод QThread::setPriority(), а вот как задать приоритет потоку запущенному например через QtConcurrent::run() не понятно. В новом стандарте C++0x будет метод std::call_once, который является потокобезопасной функций для выполнения определеннной функции один лишь раз. Аналогичная функция есть и в BOOST'e. Посмотрев на код функции я пришел к выводу, что проще переписать её на Qt, чем заставлять людей тащить с собой BOOST. С другой стороны моя реализация получилась в 2 раза быстрей BOOST'овской, но медленней std::call_once. Связано это со скудными возможностями класса QAtomicInt, там где я бы мог обойтись быстрыми атомарными операциями загрузки (load) и сохранения (store), мне пришлось импровизировать и использовать более медленные атомарные методы (fetchAndStoreAcquire, fetchAndStoreRelease). call_once.h
call_once_test.cpp
P.S.: функция также может пригодится для создания потоко-безопасных синглтонов.
Прикрепленные файлы
|
|
|
kuzulis |
21.6.2010, 18:54
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
SABROG, а с Троллями (нокией) пробовали это обсудить? Мож они включат это в свой код?
|
|
|
Текстовая версия | Сейчас: 26.11.2024, 10:57 |