![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
void* |
![]()
Сообщение
#1
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
Предлагаю в данную тему скидывать все известные вам интересные фичи и "секреты" 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 |
![]() ![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
![]() Для тех кто помешан на обезжиривании Qt. Вместе с исходниками Qt для мобильных систем поставляется утилита QConfig, которая позволяет отключать возможности (features). ![]() При этом утилита сама смотрит за зависимостями и отключает зависимые компоненты. Дистрибутивы для win и *nix идут без этой утилиты. Поэтому, чтобы воспользоваться данной утилитой нам понадобится скачать общий дистрибутив Qt для всех платформ. Сделать это можно в .torrent репозитории http://dist.trolltech.com/torrents/ Качать надо это: http://dist.trolltech.com/torrents/qt-all-...5.0.zip.torrent Сразу скажу, что у меня уже стояла Qt собранная статически, поэтому я просто зашел в папку $(QTDIR)/tools/qconfig и вбил заветные команды:
После этого я получил в папке release готовую утилиту. Я её залил сюда (3Mb): http://filebeam.com/b143c6b3d9bb05976e6ab1ea2fed7756 Далее запускаем её, не важно откуда. Появится диалог выбора файла. Надо выбрать файл $(QTDIR)/src/corelib/global/qfeatures.txt Затем снимаем галки, которые нам не нужны и сохраняем в файл $(QTDIR)/src/corelib/global/qconfig-НАШЕИМЯ.h Расположение и имя файла должно быть именно таким иначе он не найдется. Затем используем не документированный для виндовых/линуксовых дистрибутивов, но существующий ключ -qconfig таким образом:
Дальше собираем как обычно. В аттаче я прикрепил свою конфигурацию, не уверен, что она оптимальная или правильная. Проверил на примере /examples/widgets/calculator. В обычном статике размер: 7,14 МБ (7 494 656 байт) C теми же ключами но после редактирования через qconfig: 6,19 МБ (6 496 256 байт) UPX сжал exe файл до : 2,34 МБ (2 463 232 байт) Для сравнения обычная (shared) сборка, сумма всех файлов в папке: 13,1 МБ (13 779 036 байт) --- Я пошел дальше в своих изысканиях и решил собрать Qt с оптимизацией по размеру. Отредактировал файл $QTDIR/mkspecs/win32-g++/qmake.conf и заменил строчку: Цитата QMAKE_CFLAGS_RELEASE = -O2 на Цитата QMAKE_CFLAGS_RELEASE = -Os Проделал ту же операцию, что и раньше. Теперь пример calculator.exe сжатый UPX'ом весит: 1,99 МБ (2 095 104 байт) Хоть и в ущерб скорости (оптимизация убрала выравнивание страниц), зато в пользу размера. Еще бы, есть разница 13Мб и 1,99Мб ![]() --- Немного погуглив нашел еще пару ключей для компилятора, которые прописал тоже в qmake.conf Цитата -fmerge-all-constants -fno-default-inline -fno-inline -ffunction-sections -fdata-sections -Wl,--gc-sections Новый рекорд: 1,86 МБ (1 951 744 байт) Но есть побочный эффект. Простейшие примеры линкуются около минуты. В общем экспериментируйте. Сообщение отредактировал SABROG - 22.3.2009, 20:59 |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 17.2.2025, 3:14 |