Кроссплатформенный калькулятор МК-61QT.

Несколько месяцев назад в своем блоге я писал про пробу QT-SDK - кроссплатформенного инструментария разработки ПО на языке программирования С++.

Благодаря Алексею Digitalinvitro Сугоняеву, который ведет разработку кода, данная "проба пера" развилась в совершенно новый проект: легендарный калькулятор МК-61 в новом обличье QT.

Далее идут скриншоты с симулятора мобильных устройств на Symbian^3 в лице Нокии N8:

Запуск MK-61QT в симуляторе, выполнение команд 'F' 'π':

Запуск MK-61QT в симуляторе, выполнение команд 'F' 'π'

Ввод программы '9' 'B|' '8' 'C/П':

Ввод программы '9' 'B|' '8' 'C/П'

Текст программы в окне вкладки ПРГ:

Текст программы в окне вкладки ПРГ

Окно отладки:

Окно отладки

Калькулятор уже вполне работоспособен - например, успешно выполняет тест 8 ферзей.

Работа MK-61QT была проверена на реальных телефонах: Nokia 5800XM и Nokia N8.

Файлы QT проекта с открытым исходным кодом MK61QT находятся на хостинге Gitorious для распределенной системы контроля версий файлов GIT.

----------------------------------------------

Ссылки по теме:
Электроника МК-61
QT - a cross-platform application and UI framework
QT в википедии
Система контроля версий GIT
Msysgit - GIT client for Windows
TortoiseGIT - a GUI for Windows
Nokia N8

Комментарии

На J2ME бы написать... :-)

А зачем? Получится виртуальная машина, работающая под виртуальной машиной. В отличие от QTшного нативного кода.
С другой стороны - если кто хочет на J2ME - исходники открыты, переписывайте. Хорошего калькулятора должно быть много :)

эх! > С другой стороны - если кто хочет на J2ME -
> исходники открыты, переписывайте. Хорошего
> калькулятора должно быть много :)

Эх, старинный и правильный подход! Прямо душа радуется. Возможно, мы одно из немногих отечественных сообществ, где действительно собрались Настоящие Программисты™ и подобное предложение не выглядит насмешкой или отпиской. :-)

:)

Да, внушает :)

Самим страшно :)

Build for maemo 5Не собирается под Maemo 5. У него там свой класс Display - конфликтует с вашим.

Вот так выглядит на n900: http://s61.radikal.ru/i171/1010/92/0bce6dd0b040.png

А как будет выглядеть, если симулятор повернуть из Landscape в Portrait?

Это не симулятор, а железка. На железке он не переключает режимы по дефолту. Там нужно флаги прописать:

The portrait or landscape orientation is not a global setting, but is handled on a per window basis. Qt's windows use landscape orientation by default. For top-level widgets this default can be changed by setting the Qt::WA_Maemo5PortraitOrientation, Qt::WA_Maemo5LandscapeOrientation or Qt::WA_Maemo5AutoOrientation widget attributes.

http://doc.qt.nokia.com/qt-maemo-4.6/platform-notes-maemo5.html

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

Присоединиться не могу - нет времени.
А код можно писать один. Qt позволяет изолировать платформо-специфичный код в проекте. Его нужно просто поместить в

#ifdef Q_WS_MAEMO5 || Q_WS_HILDON //(Q_WS_HILDON used in Qt < 4.6.x)
....
#endif
При сборке под симбиан все что внутри не будет компилироваться.

Специфичный для симбиана код аналогично можно поместить в:

#ifdef Q_OS_SYMBIAN
....
#endif

Да, я флаги компиляции и имел в виду под "конфигурировать".

Вряд ли мы пока будем добавлять платформо-специфичные флаги сейчас, поскольку Маэмо устройств под рукой нет, только Симбиан-телефоны. А симуляторы в QT SDK пока работают не 100% точно "железным" устройствам.

Скриншоты красивые!

Жаль, конечно, что нет расширения МК-152. Т.к. графика, звук это всё очень даже неплохо было бы иметь, прямо из системы команд ПМК.

Но сцена развивается. Это радует. Теперь надо пустить эмулятор в свободное плавание, по многочисленным симбиановским сайтам. Под винду (нетбуки 800x600) тоже неплохо было бы иметь.

В принципе, программный калькулятор ВК-6 достаточно легко прикрутить к GUI в QT SDK, но лучше это сделать отдельным проектом, не в контексте mk-61qt.

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

Замечательная работа, любо-дорого посмотреть!

А оно, оказывается, может служить в качестве кросс-платфоменной среды разработки Си++-приложений, а не только формочек!
Это я и искал, альтернативы хуже (VS - потому что M$, Dev-C++ - слабоватый, Eclipse - наоборот, громоздкий и весь завязанный на яву). А умеет ли оно отлаживать DLL-ки, подгружаемые динамически по ходу выполнения (типа, загрузка плагина)? А как с обработкой юникодных строк и файлов?

Да, это очень удобная среда разработки для C++.
Насчет отладки все должно быть хорошо, раз там есть gdb и CDB:
http://qt.nokia.com/products/developer-tools/developer-tools

    * C++ and JavaScript code editor
    * Integrated UI designer
    * Project and build management tools
    * gdb and CDB debuggers
    * Support for version control
    * Simulator for mobile UIs
    * Support for desktop and mobile targets

C уникодом точно не знаю, но что-то поддерживается:
http://doc.qt.nokia.com/4.6/unicode.html

Попробем, попробуем... А вот что вышло с Lazarus-ом... (http://www.www.arbinada.com/node/1203)

Да, там все погрустнее будет.
А у меня как-то никогда с Паскалем и Дельфями не срасталос. Сишник плюсник...

У меня срасталось с обоими, но не срасталось с чудовищными фреймворками типа MFC или ATL. Это примеры того, как можно испоганить такой мощный, но небезопасный в кривых мозгах язык, как Си++... В Delphi VCL построен на порядок красивее, хотя тоже не идеал. В .NET базовый фреймворк продумали хорошо, но это, как минимум C#, то есть "сделано в США для программистов Индии". А сейчас вот гляжу на архитектуру Qt и просто душа радуется :)

Отладка DLL работает. Уже хотел было своё ваять, благо не очень сложно, но нашел в Qt классы для реализации подсистемы плагинов, буду завтра втыкать :)

:) "сделано в США для программистов Индии" - хорошо сказано.
На C# мне приходится немного ваять на работе. Опыта большого в .NET не имею, но то, что понимаю и знаю, нравится. Опять же, для кривых мозгов гораздо безопаснее "плюсов" :)
А QT, действительно, совсем другое дело.