Секреты и интересные возможности 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 |
23.2.2010, 16:36
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Кроссплатформенный метод установки приоритета для приложени. Навеяно этим постом.
Вариант 1.
Вариант 2. Установка приоритета после входа в цикл событий.
Вариант 3. Более легковесный вариант установки приоритета после входа в цикл событий, если вместо класса Object будет какой-нибудь MainWindow.
Для Windows стоит разделять понятия "класс приоритета приложения" и "приоритет потока". Все приложения изначально получают класс приоритета NORMAL_PRIORITY_CLASS и приоритет потока THREAD_PRIORITY_NORMAL. Предположим, что мы вызываем метод QThread::setPriority(QThread::TimeCriticalPriority), чтобы выделить самый высокий приоритет. К нашему удивлению в том же TaskManager'e приоритет будет стоять "Средний". Но в Windows количество возможных приоритетов аж 31 штука. Самый высокий достигается комбинацией установки класса REALTIME_PRIORITY_CLASS и приоритета THREAD_PRIORITY_TIME_CRITICAL. В Qt нет возможности установки класса приоритета, поэтому решением может быть вызов WINAPI ::SetPriorityClass(::GetCurrentProcess(), HIGH_PRIORITY_CLASS);, или установка класса через TaskManager, или установка класса приоритета в момент запуска приложения:
Установка приоритета приложения для linux может не работать в некоторых ситуациях о чем сказано в документации к метод QThread::setPriority(). Сообщение отредактировал SABROG - 23.2.2010, 16:58 |
|
|
Текстовая версия | Сейчас: 26.11.2024, 10:15 |