Или независимые управляемые формы графического интерфейса.
Читать полностью »
Метка «Qt» - 3
Управление графическим интерфейсом с помощью echo и cat
2014-02-10 в 6:17, admin, рубрики: c++, cat, echo, GUI, qt, qt designer, Qt Software, ненормальное программирование, метки: cat, echo, gui, Qt, qt designerРедактор частиц QML
2014-01-14 в 16:10, admin, рубрики: game development, Gamedev, open source, particles system, QML, qt, qt quick, Qt Software, qt5, частицы, метки: Gamedev, open source, particles system, QML, Qt, qt quick, qt5, частицы Представляю ещё один свой проект, на этот раз, — opensource (лицензия GPLv3).
QML Particle Editor — редактор частиц, десктопное приложение, написанное целиком на QML.
Не знаю, как вы, а я Qt Quick Designer (известный также, как qml2puppet) обычно не использую, глючный он, да и руками мне удобнее писать. Беглый обзор показал, что для работы с частицами QML до сих пор ничего специфичного нет и не ожидается, поэтому за время новогодних праздников запилил свой редактор.
Зачем это нужно? Удобнее изменять свойства и тут же видеть результат, чем вслепую править код и гадать, почему внешне ничего не изменилось. Само собой, для того, чтобы делать крутые штуки вроде тех, что лежат в демо-приложенях, придётся вникнуть во взаимосвязь компонентов и разобраться в свойствах, без этого не обойтись. Хотя, основу, например, можно набросать в редакторе, а плюшки вроде ColorAnimation on color
прописать уже руками, так как всё, что делает мой редактор — позволяет создать сцену и получить её QML код, который сразу можно использовать в любом проекте.
Подробности реализации и ссылка на репозиторий — под катом.
Читать полностью »
Melange — DSL для сетевых протоколов
2013-12-28 в 20:07, admin, рубрики: mpl, ocaml, qt, qt quick, Qt Software, spl, ненормальное программирование, сериализация, сетевые протоколы, функциональное программирование, метки: mpl, ocaml, Qt, qt quick, spl, сериализация, сетевые протоколыВсем программистам рано или поздно приходится передавать данные. Ни для кого не секрет, что библиотек сериализации в Java существует примерно >9000, а в C++ они вроде и есть, а вроде их и нет. К счастью для большинства, несколько лет назад появился Google Protobuf, который принёс достаточно удобный способ определять структуры данных и быстро завоевал всенародную любовь. Это была фактически первая, доступная широким массам библиотека, позволяющая гонять по сети готовые структуры данных, не связываясь при этом с чем-то вроде XML. На дворе был 2008 год.
Вернёмся немного назад. В 2006 году простой индийский программист (как бы подозрительно это ни звучало!) Анил Мадхавапедди, один из самых известных сейчас в мире OCaml-разработчиков и автор свежевышедшей книги Real World OCaml, защищал в Кембридже кандидатскую диссертацию. Именно о ней я сегодня вам и расскажу.
Анил сразу пошёл дальше, чем Google. Он сразу подумал, для чего люди обычно пересылают по сети какие-то формализованные структуры данных? Чтобы реализовать какой-то протокол. А что такое протокол? Это какой-то конечный автомат. А где мы можем взять хороший пример сложного, хорошо спроектированного и проверенного временем протокола? Да прямо в обычном сетевом стеке! Итак, были взяты набор сетевых структур данных и протоколов: Ethernet frame, IPv4, ICMP, TCP, UDP, SSH, DNS и DHCP и постановка задачи: большая часть этих протоколов (особенно SSH и DNS) реализуются, что называется «руками», а хочется, чтобы не было типичных для C переполнений буфера, все переходы совершались автоматически, это всё можно было верифицировать, и чтобы работало быстро, а не как обычно.
Поскольку никто не будет читать диссертацию, сразу скажу: это более чем удалось. По результатам работы были написаны референсные реализации DNS и SSH-сервера и произведено сравнение с BIND и OpenSSH. OCaml-реализации давали по сравнению с традиционными прирост производительности от незначительного, до почти двухкратного. Кроме того была найдена ошибка в RFC на SSH (рабочая группа была уведомлена и RFC исправлен). О том, что было сделано, и как с этим жить, читайте под катом. Читать полностью »
Qt 5.2.0 вышел в свет!
2013-12-25 в 10:17, admin, рубрики: android, iOS, qt, Qt 5, Qt Software, Разработка под android, разработка под iOS, метки: android, iOS, Qt, Qt 5
Habrahabr::instance()->sup(tr("Good morning, %1").arg(username));
К сожалению, новость подустаревшая, но это связано с тем, что я был убежден в существовании оной до сегодняшнего дня :). Тем не менее, пропустить такое значительное событие всего года — ну просто невозможно. Давайте пройдемся по пунктам!
Qt — кросплатформенный фреймворк для разработки приложений и пользовательского интерфейса на С++ с использованием технологий QML (декларативного языка на манер JavaScript & CSS). Ранее поддерживался Trolltech, пока его не купили Nokia, которые продали его Digia — замечательной компании, которая открывает кьюту невероятные возможности.
- Полноценная поддержка Android *
- Полноценная поддержка iOS *
- Десктопные Qt Quick Controls доработаны
- Баги виджетов исправлены (+ пара новых няшных элементов)
- Qt Windows/Mac Extras — интеграция с нативным кодом для этих платформ
- Поддержка Bluetooth на Linux
- Увеличена производительность рендера Qt Quick (QML)
- Множество фиксов для OS X Mavericks
- Модуль Accessibility доступен и на Android
* — за исключением пару очень узких функций, которые недоступны из-за лицензий/правил/etc
Полный текст релиза: blog.qt.digia.com/blog/2013/12/12/qt-5-2-released-the-best-qt-yet/
Узнать все о вкусняшке и скачать ее, собсно, можно тута: qt-project.org/
P.S. В голове не уложилось, когда позавчера собрал свое десктопное qml приложение под Android, затем под iOS-cимулятор и все это добро работало — начинается новая эра...
Читать полностью »
OpenGL в Qt 5.1 – Часть 1 и 2
2013-12-18 в 23:18, admin, рубрики: c++, KDAB, OpenGL, qt, Qt Software, Анимация и 3D графика, перевод, уроки, метки: c++, KDAB, OpenGL, Qt, перевод, урокиЭта статья является перевод статьи OpenGL in Qt 5.1 — Part 1 и Part 2
Часть 1
Эта статья является первой в серии. Она покажет, как использовать OpenGL в Qt 5. В этой статье будет краткий экскурс в историю поддержки OpenGL в Qt. Затем мы перейдем к описанию первой части новых возможностей, которые вошли в Qt 5.1. Последующие статьи будут содержать описание большего количества возможностей, а так же будут приведены несколько простых примеров того, насколько легко можно использовать Qt для работы с OpenGL.
2ГИС для Blackberry 10
2013-12-03 в 9:03, admin, рубрики: 2GIS, blackberry, mobile development, qt, Qt Software, Блог компании 2ГИС, портирование, метки: 2gis, blackberry, Qt, портирование2ГИС всегда стремится удовлетворять запросы пользователей, стараясь присутствовать на всех ключевых платформах. Особенно, если речь идёт о странах, в которые мы в дальнейшем планируем выходить.
12 ноября число платформ, на которых есть 2ГИС, пополнился ещё одной — Blackberry 10.
В связи с этим знаменательным событием, хочется поделиться некоторыми моментами, связанными с опытом портирования.
Читать полностью »
Improv: Открытый модульный компактный компьютер
2013-11-26 в 6:40, admin, рубрики: kde, linux, open hardware, open source, qt, Железо, метки: kde, linux, open hardware, QtОрганизация Make·Play·Live, занимающаяся проектированием устройств с философией OpenHardware, представила свою первую разработку: двухплатный модульный компьютер, предназначенный для разработчиков.
Qt: шаблон для корректной работы с потоками — более качественная реализация
2013-11-22 в 12:05, admin, рубрики: c++, qt, Qt Software, QThread, Алгоритмы, многозадачность, поток, метки: Qt, QThread, многозадачность, поток В своей предыдущей статье я затронул тему грамотной реализации потоков в Qt и предложил свой вариант. В комментариях мне подсказали более верное направление. Попробовал сделать — получилось и вправду легко и красиво! Я хотел было исправить старую статью, но Хабр повис — и все потерялось. В итоге я решил написать новую версию.
Читать полностью »
Qt: шаблон для корректной работы с потоками
2013-11-18 в 12:34, admin, рубрики: c++, qt, Qt Software, QThread, Алгоритмы, многозадачность, метки: c++, Qt, QThread, многозадачность Всем хабрапривет!
Как-то понадобилось мне в Qt 5.1.1 для WinXP в VS2009 реализовать многопоточное приложение с интенсивным обменом сигналами. Взял я Шлее, вычитал у него, что нужно унаследовать класс от QThread и — вуаля, велком в многопоточность! На всякий случай заглянул в документацию Qt — там никто не возражал против наследования от QThread своего класса. Ну что же — порядок, сделано! Запускаю — вроде как работает, но как-то не так… Начинаю в режиме отладки отслеживать — а там творится черт знает что! То сигналы не выходят, то выходят, но как-то криво и из другого потока. Одним словом, полный бардак! Пришлось основательно по-google-ить и разобраться в теме (мне помогли статьи тут, здесь и там). В итоге я сделал шаблон класса на С++ (вернее, целую иерархию оных), что мне позволило в итоге писать (относительно) небольшой код класса, живущего в другом потоке, который работает правильно и стабильно.
Читать полностью »
QML Creator: разработка на QML под Android
2013-11-02 в 19:11, admin, рубрики: android, crossplatform, necessitas, QML, qt, Qt 4, Qt 5, qt quick, Qt Software, портирование, Разработка под android, метки: android, crossplatform, necessitas, QML, Qt, Qt 4, Qt 5, qt quick, портирование Представляю вниманию сообщества свой маленький проект QML Creator. Данная программа для Android была написана за две недели (вечерами после работы) и представляет собой Qt Quick 2.1 приложение, основанное на ApplicationWindow, с небольшими вкраплениями C++, которое позволяет разрабатывать компоненты QML прямо на мобильном телефоне или планшете (инновация, не имеет аналогов в мире, мной уже заинтересовались ведущие американские компании, скачать бесплатно без смс нескучные обои, а главное — я не беру за неё ни копейки).
Читать полностью »