Qt

SVG в Qt

Благодаря бдительным пользователям в qTwister обнаружился баг. Оказывается, для отображения векторных svg-картинок, необходимо в составе приложения поставлять еще и соответствующий плагин, а без него ничего не показывается. В общем, разобрался, все исправил, кто следит — может скачать обновленные архивы со страницы программы (если надо — обновите кэш браузера).

На случай если забуду, или случайный гость заинтересуется: плагин qsvg4.dll (.so для Linux) лежит в qt/plugins/imageformats. В приложении плагин должен поставляться в директории imageformats/.

qPassGen — генератор паролей

Время от времени всем нам приходится регистрировать учетные записи, для которых неплохо бы иметь «сильный» пароль. Для доступа на ФТП, для админки на сайте, в общем — известно, зачем. Лично я для этих целей обычно ставлю пароли вида NCpg*fmO_08uLh. Придумывать такие самому, однако, лениво. Поэтому уже несколько лет пользуюсь самопальной утилиткой на Qt, которая придумывает их за меня. Ну и пришло как-то в голову привести ее в божеский вид и выложить сюда — а ну как кому пригодится. Знакомьтесь, qPassGen:

Программа генерирует пароли заданной длины из букв латинского алфавита нижнего и верхнего регистра, пробелов, подчеркиваний, цифр и звездочек, а также дополнительных, введенных от руки символов. Краткое описание прилагается в архивах.

qTwister

Как-то раз жена притащила домой заморскую игру Твистер. Если кто не знает, это такая напольная потеха, в которой игроки должны по команде ставить руки и ноги на разноцветные круги, извиваясь как ужи, и кто гибше гнется — тот молодец. Игра была немедленно испытана на гостях, специально приглашенных под надуманным предлогом (см. спиртное). Радость стояла неописуемая — пьяные гости (и мы с ними) яростно изгибались и дружно валились в кучу. Поутру не привыкшие еще к позициям из цикла «Йога для самых гуттаперчевых» конечности адски болели, но сейчас не об этом.

В процессе игры оказалось, что один из присутствующих вынужден воздержаться от всеобщего твистера и быть ведущим, то есть крутить пластмассовую стрелку на диске и называть выпадающие ходы (цвета и конечности). И это в XXI веке, когда очевидно, что в комплект с игрой должны входить специально обученные роботы, самостоятельно крутящие стрелку, пока человеки полным составом валяются по полу.

А я как раз тогда дочитывал книжку Макса Шлее про Qt, ну и решил устранить технологическую несправедливость и заодно закрепить некоторые аспекты фреймворка на практике. Так родилась программка qTwister.

Программа умеет:

  • генерировать ходы для Твистера в ручном режиме (нажатием на красную кнопку);
  • генерировать ходы автоматически с заданным интервалом;
  • отображать каждый ход графически (изображением конечности и цвета, как на картинке выше);
  • озвучивать каждый ход мужским или женским голосом (русскую озвучку сами наговаривали, английская — сгенерирована через espeak);
  • работать на русском и английском языках.

В общем, делюсь разработкой с общественностью. Краткое руководство по использованию прилагается в архиве.

Всякие deb и rpm-пакетики наверное тоже вскоре сделаю. Заодно научусь, как.

Если есть какие вопросы, сообщения, уточнения или пожелания по поводу — пишите в комментарии или в почту.

А если вам хочется поставить генератор ходов для Твистера на мобильный телефон, воспользуйтесь программой Twisdial. Она умеет работать в телефонах на базе Android и других телефонах с поддержкой J2ME.

Qt, Symbian и Linux

Блог лабораторий Trolltech, разработчиков Qt, разродился хорошей новостью. В грядущем Qt 4.7 станет возможной разработка и отладка софта для Symbian прямо из-под Линукса. Возможность пока экспериментальная, тролльтехи ее планируют улучшать, упрощать и дорабатывать, но серьезный шаг вперед уже сделан.

В заметке «Symbian development using Linux» Томас Зандер рассказывает о том, как и что нужно устанавливать, чтобы начать плодотворную разработку уже сейчас.

Qt и звуки

Меня всегда радовало разнообразие возможностей по работе со звуком в Линуксе.

Сегодня, например, несколько часов подряд взрывал себе мозг на тему QSound в Qt. Дело в том, что под Виндой, чтобы воспроизвести звуковой эффект без извращений, нужно просто вызвать статический метод QSound::play("имя файла"). В Линуксе тоже так можно, но чтобы звук действительно прозвучал — надо ставить NAS. Узнав об этой необходимости, принялся ставить оный, параллельно размышляя, как лучше заставить пользователей проделать то же самое. Мозги начали нагреваться.

Когда с nasd возникли какие-то проблемы, быстренько переключился на поиск альтернатив. Уже задумался о компиляции версии под Линукс с Phonon. Остановил тот факт, что фононовский учебный проект из состава Qt SDK не собрался out of the box. Попробовал учебный проект QAudioOutput оттуда же — не работает.

Уже начал было впадать в уныние, но в конце-концов осенило:

  1. #ifdef Q_WS_X11
  2.   QProcess::startDetached("play mysound.wav");
  3. #else
  4.   QSound::play("mysound.wav");
  5. #endif

Вроде бы, ерундовая задача, а — чуть стол головой не разбил. Так жить нельзя.

Вышел Qt 4.6.0

Сегодня в блоге Qt Labs появилась благая весть: вышел релиз Qt 4.6.0 и его можно скачать.

Новость очень приятная. Как говорится, надо брать.