Skip to content

Posts from the ‘Russian’ Category

24
May

Nokia Qt SDK, пишем первое приложение и запускаем его в эмуляторе и на устройстве

Как обычно, архивирую совю публикацию на хабре.

Доброго времени суток уважаемый читатель. Продолжаю писать о платформе Maemo (пока еще для Maemo Fremantle). Эта статья посвящена новости в мире Nokia – выход Nokia Qt SDK. Пока еще это TP (Technical Preview, долго силил перевод на русский, не получилось, так что пуст будет “TP” далее по тексту). Но писать на этом уже можно, но есть несколько оговорок. Подробности далее по порядку. Еще я расскажу подробней о MADDE, так как именно эта часть в Nokia Qt SDK отвечает за разработку для Maemo.

image

Как результат мы напишем приложение (очень громко сказано :-) , вообще так, приложенице ), соберем и запустим его на эмуляторе и на устройстве ( точнее на Nokia N900 ). Да и вообще разберемся что чем и как писать для устройств Nokia сейчас и в будущем.

Read moreRead more


Unique visitors to post: 365

13
Mar

Быстрая установка Fremantle SDK (Maemo 5). Установка Qt 4.6. Запуск и отладка в эмуляторе и на устройстве

Продолжаю цикл статей по программированию для Maemo.

Некоторым показалось, что начать программировать для Maemo тяжело. Именно поэтому я решил начать с демонстрации легкого пути “Easy way” (c), чтоб показать как легко начать. Далее, учитывая выход официального релиза t 4.6.2 для maemo 5, я покажу как поставить этот релиз на Fremantle SDK. Продемонстрирую отладку в эмуляторе. И самое главное, как отлаживать приложение на устройстве используя обычное сетевое подключение и подключение по USB.

Результатом нашего труда будет вот такое вот окошечко на устройстве:

image

Примечание: в качестве IDE используется Scratchbox, так как речь идет о Fremantle SDK. QtQreator можно использовать, но как таковой поддержки Fremantle в нем нет и не будет. Почему ? Да потому-что в нем делают поддержку нового, кросс-платформенного SDK – MADDE, о котором я уже упоминал (и упомяну еще в заключении).

Read moreRead more


Unique visitors to post: 130

18
Feb

Как настроить Maemo 5(4) SDK и начать писать приложения под Windows/Linux/MacOS менее чем за полчаса!

image

Уже нет смысла, я думаю, объяснять что такое Maemo и где он работает. Всем понятно, что это Linux, который сейчас работает на таблетках от Nokia и на новом Nokia N900. Но так как проект open-source, то думаю другим производителям ничто не мешает сделать свое устройство под этой платформой (кто знает, может появится HTC или Motorolla на базе Maemo).

Речь в этой статье пойдет о том как настроить окружение для разработки для Maemo.

Начнем с того, что сейчас существуют два типа SDK – текущий стабильный для Maemo5/4 (Fremantle/Diablo) и новый SDK, который сейчас в бете – MADDE.

Ну давайте начнем со стабильного (относительно и спорно, позже покажу почему) и текущего – Fremantle (на момент написания статьи но был “pre-final 2″, теперь в “final”). Он базируется на Diablo и поэтому процесс установки и нструменты те же. И если вам нужен Diablo – инструкция подойдет эта, а далее я буду говорить только о Fremantle, подозревая что по желанию можно использовать Diablo.

Хорошо, предположим, что мы выбрали SDK Fremantle (MADDE я посвящу последующие статьи). У этого SDK есть один недостаток – он моно-платформенный. Он работает только под Linux x86 (желательно debian based, но не обязательно). Для счастливый пользователей этой системы существует простой путь для установки SDK нужно скачать скрипт с этой страницы и действовать согласно этой инструкции.

Что же делать, если рабочая система у нас Windows(самая популярная)/Linux x64/MacOs? Не отчаивайтесь. У вас и тут есть выбор. Самый легкий путь – это скачать отсюда виртуальный образ с настроенным окружением и в нем работать. Все предельно просто – качаем, запускаем из-под VMWare, QEMU, VirtualBox. Там уже стоит ESBox и SDK. Если вы не знаете как установить систему в виртуальной машине, можно подсмотреть в этой статье далее.

image
Ну и последний вариант – если Вы хотите разрабатывать приложения на своей родной платформе – нет проблем! ESBox (забыл представить – это Eclipse+плагины для разработки под Maemo5/4) умеет работать с виртуальной машиной. То есть получается, что вы пишите код в ESBox, он собирает это в виртуальной машине и запускает там, а результат отображается опять же в вашей родной системе. Виртуальная система работает “в тени”. Идея прекрасна, не правда ли?

На деле все не так гладко в Windows, под Mac OS и Linux все работает как надо (надеюсь в скором будущем для Windows все отмеченные мною баги будут исправленны). Я столкнулся с несколькими неприятными моментами, плюс часть документации, которую можно найти в разных местах создана не Нокиа, а open source community и иногда встречаются неточности и несоответствия версий

Вот в этой статье далее пойдет речь о том как установить Maemo SDK под Windows (будут замечания, если процесс будет отличатся от Linux, Mac OS вариантов) и более того, я при вас это сделаю менее чем за пол часа. Всё видео и нотации к ним под катом.

Да кстати, это все можно установить не только для разработки, но и для того чтобы познакомится с Maemo не имея реального устройства.

Некоторым кажется, что процесс утсановки сложен и много букв. В действительности не так, просто я постарался описать как можно подробней. В действительности достаточно посмотреть видео, и если что-то непонятно – прочитать описание к этому видео.

Read moreRead more


Unique visitors to post: 250

12
Jan

Qt-creator, шпаргалка по комбинациям клавиш.

В предыдущем посте я отписался о том как создавать свои плагины для Qt-creator. В этом мини посте хочу продолжить тему и поделится находкой.
Хорошие ребята из KDAB создали и выложили Qt Creator reference card. Шпаргалка по IDE, которая поможет очень быстро адаптироваться к новой среде.

Ссылки для скачивания:
Qt Creator Reference Card – A4
Qt Creator Reference Card – US Letter
Qt Creator Reference Card Mac – A4
Qt Creator Reference Card Mac – US Letter

qtcreator reference card

qtcreator reference card


Кликнув по картинке слева можно посмотреть как это выглядит на примере “Qt Creator Reference Card – A4″.

Всем приятной работы в Qt-creator’e.


Unique visitors to post: 19

12
Jan

Как написать свой плагин для Qt-creator.

Qt-creator это очень динамически развивающийся проект. Он кросс-платформенный, удобный, быстрый и хорошо настраиваемый.

Вот ссылка на официальную страницу проекта.
Небольшое видео превью:
YouTube Preview Image
Презентация по Qt-creator.
Вот тут можно скачать последние snapshor’ы.
Инструкцию по написанию плагина смотри внутри поста (осторожно, будет загружено 2,5 Мб).
Read moreRead more


Unique visitors to post: 269

30
Dec

Я добавил свою фичу в Qt-creator. Мой первый опыт.

Всем привет. Пару дней назад я начал немного “похачивать” Qt-creator. Чтобы понять в общих чертах внутренности прилось потратить вечер. Еще один вечер ушел чтобы понять как реализовать эту фичу. Ну и в конечном итоге реализация заняла около часа.

Смысл этой фичи заключается в том, что теперь можно с помощью соотвественного переключателя соеденить деревья исходных файлов и заголовчных файлов. Мне было неудобно иметь два дерева – одно для заголовочных файлов – другое для исходных, и это сподвинуло меня реализовать эту маленьку переделку.
Результаты можно посмотреть в моем “merge request” на gitorious’е .

Вот небольшая видео-демка, демонстрирующая мою фичу.

YouTube Preview Image

Я поменял калсс FolderNode, теперь в нем есть свойство FileType contentType(). Это свойство определяет тип содержимого папки (исходники, заголовочные файлы, ресурси и тд.). Еще я добавил свойство excludeFolderType в FlatMode. Это свойство служит для того, чтоб исключить все папки, у которых контент соостветсвующего типа, из модели со всеми наследниками.

Зачем мне это было нужно.
1. Хотелось понять как устроен Qt-creator.
2. Повысить свои навыки (поучится на чужом коде).
3. Помочь сделать Qt-creator лучше.

Дальше планирую реализовать еще парочку небольших улучшений:
1. Панель файловой системы сделать древовидной.
2. Состояние файла в проекте в системе контроля версий.

P.S:Это был мой первый опыт работы с git и gitorious.


Unique visitors to post: 23

26
Nov

Приватные слоты в паттерне Pimpl от Qt.

Вступление.

Недавно я писал по поводу реализации паттерна Pimpl в библиотеке Qt и призывал людей следовать такому подходу при разработке их собственных бибиотек. Теперь я хочу поговорить о таком понятии, как приватные слоты и тем самым продолжить эту тему. Заключительной статьей на эту тему будет реализация механизма Implicit Sharing и shared d-pointer.

Что это и зачем это нужно.

Приватные слоты – это механизм дополняющий функционал d-указателей. Он позволяет реализовать слоты для приватного класса, даже если он не является наследником от QObject (обычно он им и не является), но для этого публичный класс должен быть наследником от QObject. Тоесть по факту создается некий приватный слот в публичном классе и он непосредственно дергает нужный метод приватного класса.
Зачем это нужно? Ну рассмотрим на примере. Есть класс QAbstractScrollArea. Он просто отображает некий виджет (viewport) и обеспечивает прокрутку. Прокрутка обеспечивается с помощью двух экземпляров класса QScrollBar. Сами эти скролбары он хранит в приватном классе. Теперь проблемма: как подключить сигнал от скроллбара об изменение его позиции с классом QAbstractScrollAreaPrivate, ведь он не является QObject’ом ? Сделать его наследником от QObject – лучше не делайте это :-) . Можно сделать слот в публичном классе и повесить на него, то в таком случае это не очень красиво – так как наружу выходят слоты от внутренней реализации. Вот ту Qt-шниками был придуман достаточно разумный и элегантный подход – приватные слоты.

Read moreRead more


Unique visitors to post: 53

20
Nov

Pimpl. D-pointer. Или чеширский кот по версии Qt.

English version.

Вступление.

Qt Logo

Qt Logo

Часто в документации от Qt встречается термин Pimpl. Кроме того, те кто хоть немного копался в исходном коде Qt часто видел такие макросы как: Q_DECLARE_PRIVATE, Q_D. А также встречал так называемые приватные заголовочные файлы, название которых заканчивается на “_p.h”.
В этой статье я попробую приоткрыть ширму за всей это структурой.
Read moreRead more


Unique visitors to post: 227