Обновить
5.62

Qt *

Кроссплатформенный инструментарий разработки ПО

Сначала показывать
Период
Уровень сложности

Программирование на PyQt4. Часть 1

Время на прочтение9 мин
Охват и читатели19K
Данный цикл статей является работой одного очень креативного и умного человека с ником Liksys. Благодаря хорошим людям он получил инвайт и продолжение этого цикла статей будет безусловно! ;)

image

Часть №1


       Когда люди говорят о Qt, многим из нас сразу вспоминается KDE с его обилием настроек. Программисты следом представляют исходники, написанные на C++ с весьма изящным подходом к решению проблемы. И это вполне оправданно: KDE — это, пожалуй, самый известный Qt-проект, а сама Qt написана на C++ и предназначена в первую очередь именно для него. За долгое время существования этого инструментария он стал своеобразным стандартом в Linux для написания графических приложений наряду с GTK, wxWidgets и т.д. Мощь языка C++ дала возможность создать много отличных программ, а стиль Qt является образцом для подражания многих программистов.
А о чём тогда разговор?

Labyrus: 3D лабиринт

Время на прочтение4 мин
Охват и читатели18K
«У тебя 2 минуты, чтобы создать лабиринт, на выход из которого нужна минута.»
Коб, «Начало»



Примерно год назад мне стало интересно нарисовать лабиринт, на прохождение которого требуется хоть какое-то время. Я долго пытался это сделать, однако столкнулся с множеством проблем:
  1. От выхода такой лабиринт проходился на «раз-два».
  2. Увидеть и понять, идешь ты по правильному пути, или нет, можно было почти всегда.
  3. На рисование лабиринта уходило очень много времени.

Тогда я решил написать программу, которая будет скрывать то, что видеть не положено и, заодно, генерить лабиринты.
А потом поднял лабиринт в 3D с помощью OpenGL.
А затем добавил в него сеть, потоки и этажи.
Итак, встречайте:

Labyrus — открытая кроссплатформенная многопоточная сетевая игра, написанная с использованием OpenGl и Qt.

Читать дальше →

Введение в Qt Quick3D

Время на прочтение6 мин
Охват и читатели37K
Этот пост участвует в конкурсе „Умные телефоны за умные посты“
Не так давно фреймворк Qt Quick обзавелся дополнением Qt Quick3D, позволяющим полноценно работать с 3D объектами (поддерживается импорт из 3D Max и Blender), совершать над ними различные трансформации, анимации, применять эффекты, ну и вообще по полной использовать возможности лежащего в основе OpenGL. Работает всё это под Symbian, MeeGo, Windows\Linux\MacOs (ну и вообще везде, где Qt есть). В этом топике мы попробуем технологию «на зуб». Писать что-то сложное и серьёзное не хочется, поэтому мы сделаем хабрахолодильник, из которого по клику будет вылетать НЛО.
Сразу результат:

Читать дальше →

QtCreator: Qt кросс-компиляция из linux 64 в linux 32, win32, win64 и Mac OS X; upx, usb, dmg, etc

Время на прочтение14 мин
Охват и читатели87K


Библиотека Qt позволяет делать действительно кроссплатформенные приложения. Единожды написанный код можно откомпилировать под многие операционные системы. Но проблема именно в слове «компилировать», т.к. подразумевается, что необходимо перезагрузиться под целевую систему, иметь в ней настроенную среду разработки, установленный и настроенный зоопарк библиотек. Спасает кросс-компиляция — компиляция, производящая исполняемый код для платформы, отличной от той, на которой исполняется.
Читать дальше →

Nokia увольняет часть разработчиков Qt

Время на прочтение1 мин
Охват и читатели2.7K
Мирко Боэм (Mirko Boehm) из KDE с горечью сообщает, что часть разработчиков Qt попала под сокращение штата. В этом раунде Nokia увольняет 10000 человек, из них 700 разработчиков, из них 100 разработчиков Qt.

В число уволенных не вошли бывшие сотрудники компании Trolltech. В Nokia по-прежнему остаётся отдел Qt в сокращённом варианте, но сама тенденция настораживает.

«Прошлая неделя стала самой разрушительной для финансирования проектов Open Source за всю историю Qt и KDE, — пишет Мирко. — Не то чтобы это стало неожиданностью — скорее наоборот, в свете последнего падения рыночной доли и сокращения штатов это был только вопрос времени, когда Nokia сделает выбор в пользу одной платформы или другой. Конечно, всем нам хотелось думать, что будут очевидны преимущества открытой, конкурентной платформы, которая доказала возможность развития с помощью сообщества. Наверное, бесполезно рассуждать, какой выбор сделала бы компания, будь у неё развязаны руки».
Читать дальше →

Qt Components для десктопа

Время на прочтение6 мин
Охват и читатели16K
Этот пост участвует в конкурсе „Умные телефоны за умные посты“.

Как известно, QML основан на графических примитивах и даже банальные кнопки приходится рисовать из них (прямоугольник, градиент, текст, область мыши, например). Для облегчения процесса создания UI были созданы Qt Components. Они позволяют создавать кнопки, текстовые поля, дропбоксы и прочие контролы для ввода или отображения данных. В официальном релизе сейчас компоненты для
мобильных платформ: Symbian и MeeGo. Но в Qt Labs также есть версия для десктопных платформ, которая (через какое-то время) будет включена в Qt5, как основное средство создания пользовательского интерфейса (как мы помним, в Qt5 на первом месте идет QML, а QtGui уже на втором). При этом компоненты сами подстраиваются под нативный вид операционной системы.

Для того, чтобы показать возможности десктопных компонентов, а заодно обозначить основные проблемы и преимущества их использования, я создал минимальное графическое приложение на классическом QtGui и на компонентах. Нет, не Hello World. Калькулятор. Без реализации расчетов, просто графический интерфейс.



Под катом собраны запуски под 3 операционными системами и некоторые рассуждения на тему.

Читать дальше →

Портируем код с Qt 1.0 на Qt 5.11

Время на прочтение5 мин
Охват и читатели15K
Недавно вышел Qt 5.11 и мне подумалось, что сейчас самое время обновить до него кое-какие мои проектики на Qt 1.0… Ладно, шучу :) На самом деле мне стало интересно, насколько хорошо за все эти годы развития фреймворка Qt нам удавалось сохранять обратную совместимость кода.

Qt гарантирует совместимость на уровне кода и бинарников при обновлении между минорными версиями фреймворка (и мы серьёзно относимся к этому обещанию). Вы не должны переписывать (или даже перекомпилировать) свой код при переходе на другую минорную версию Qt. Однако переходы между мажорными версиями требовали от нас идти на некоторые жертвы ради прогресса. С релиза Qt 1.0 в 1996 году мы ломали совместимость кода четыре раза: в версиях 2.0, 3.0, 4.0 (ох, это было болезненно!) и 5.0.

Мы старались даже в мажорных версиях сломать как можно меньше всего, но всё же это приходилось делать. Отсюда возникает вопрос: насколько сложно портировать приложение, написанное во времена Qt 1.0 до современного Qt 5.11?

Для ответа на этот вопрос я взял пример кода, который поставлялся с документацией на Qt 1.0 и постарался собрать его с помощью Qt 5. Наши публичные архивы содержат изменения начиная с версии 1.41, так что мне пришлось изрядно покопаться в дрейнейшей истории, пройти через логи четырёх разных систем контроля версий… но это я уже отвлекаюсь. Проект, который я планирую собрать, называется «t14» — поскольку это иллюстрация к 14-ой (и последней) главе оригинального руководства.

И вот, что мне пришлось проделать для его сборки.
Читать дальше →

KDE Plasma Active запустили на Nexus 7

Время на прочтение1 мин
Охват и читатели34K
Если вам интересна тема Ubuntu Phone, то вы просто обязаны знать о всех возможностях Linux-сообщества!

Ruediger Gad — Linux разработчик — опубликовал видео (под катом), на котором демонстрирует работу KDE Plasma Active на Nexus 7. Сейчас вы наверно подумали, очередной линукс, в очередной раз запустили, а тормозит ужасно и ничего не работает… А вот и нет! Демонстрируется поддержка 3D ускорителя в тесте попугаев glmark2-es2, аппаратное ускорение видео на примере 1080p ролика, играбельность в марио в эмуляторе, поддержку Bluetooth, QZeeControl в качестве беспроводного манипулятора.
Читать дальше →

Финальный релиз PySide 1.0.0

Время на прочтение1 мин
Охват и читатели2.4K
PySideВ блоге Qt появилась новость о релизе PySide 1.0.0 с множественными багфиксами и поддержкой всех вкусностей Qt 4.7 (Qt Quick, QML), а также Qt Mobility.
Также сообщается, что запланированна поддержка Python 3k и более Pythonic API )
Читать дальше →

Небольшой demo клиент vkontakte на QML

Время на прочтение1 мин
Охват и читатели3.7K

Недавно я уже рассказывал о новом языке разметки, теперь же мне хотелось бы показать небольшой пример того, что можно с помощью этих инструментов сделать. В качестве демонстрации я решил написать крошечный клиент для популярной в рунете сети vkontakte.
Данный клиент взаимодействует с контактом через userapi, умеет отображать список пользователей, принимать и отправлять сообщения, отображать пользователей, от которых есть непрочитанные сообщения, а также искать нужных людей среди френдленты по имени и фамилии: в общем самый минимум, хотя делает он это весьма красиво.
Примечателен клиент тем, что здесь нет ни единой строчки на C++, всё сделано средствами qml и javascript.
Несколько скриншотов и ссылки для скачивания

Портируем Qt4 приложение на Qt5

Время на прочтение5 мин
Охват и читатели46K
Где-то здесь не так давно был пост о нововведених в Qt5. Всё вроде выглядит замечательно, но как же обстоят дела на самом деле в отношении уже имеющихся приложений? В этой статье я рассмотрю пример портирования одного из своих проектов на Qt5 с сохранением совместимости исходников с Qt4.

Читать дальше →

Nokia заключила соглашение о передаче разработки Qt компании Digia

Время на прочтение1 мин
Охват и читатели1.8K


Компания Digia официальным пресс-релизом объявила о заключении соглашения о передаче ей компанией Nokia разработки кросс-платформенного инструментария Qt. В рамках передачи работ в Digia также перейдут до 125 разработчиков Qt, в основном — сотрудники офисов Nokia Qt Software в Осло и Берлине.

Напомним, что в марте 2011 года Digia приобрела права на разработку, сопровождение и продажи коммерческой версии Qt.

Now is a good time for everyone to revisit their perception of Qt. Digia’s targeted R&D investments will bring back focus on Qt’s desktop and embedded platform support, while widening the support for mobile operating systems.
— Tommi Laitinen, SVP, International Products, Digia

Пресс-релиз с официального сайта Digia
Сообщение в блоге Nokia Qt Software

DLL HiJacking в Qt-приложениях

Время на прочтение1 мин
Охват и читатели2.9K
В марте 2011 года я писал о DLL HiJacking в VirtualBox. Тогда разработчики сообщили, что проблема не в их продукте, а в Qt, на котором основана их продукция.
Наконец, найдя время, я решил проверить так ли это. Оказалось, что так.

Мной были проверены:


И они оказались уязвимы.


Видео демонстрация уязвимости (видео без звука):
Читать дальше →

Ближайшие события

Особенности построения графиков Qt в «Авроре»

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели2.9K

Привет, читатель! Графики — это удобно. Нередко при разработке они нужны мне для визуализации процесса или демонстрации критичных событий. А еще их можно использовать, чтобы отобразить изменения погоды в течение дня, колебания курса валюты или диаграмму нагрузки и доступности сервера. В большинстве случаев для построения графиков есть готовые инструменты в самой операционной системе, но если вы это читаете, то в «Авроре» я ничего такого не нашел. Как я решал проблему и с какими подводными камнями столкнулся, рассказываю под катом.
Читать дальше →

Разработка интерфейса для Windows — это боль

Время на прочтение5 мин
Охват и читатели23K

Последние несколько дней я пытался найти библиотеку, которая бы позволила мне писать на C++ программы с GUI. Мои требования были довольно просты:

Достаточно только поддержки Windows

Разрешено коммерческое использование

Простая стилизация, в том числе и тёмный режим

Результатом должен быть единый файл .exe размером меньше 40 МБ без или с минимальным количеством зависимостей

Написание части программы с GUI не должно занимать больше времени, чем сама функциональность

Читать далее

О лицензиях Qt (и немного о компании)

Время на прочтение20 мин
Охват и читатели87K

В предыдущей статье про Qt roadmap я обещал рассказать про Qt 3D Studio и текущую ситуацию с лицензиями. Qt 3D Studio уже было выпущено два (пока писал статью, вышел третий) внутренних релиза, но статьи про неё пока не будет, так что сегодня расскажу про лицензии.


Система лицензирования Qt и раньше не особо отличалась простотой, но сейчас она особенно усложнилась, так как добавились (и добавляются) новые продукты и вместе с ними дополнительные условия соответствующих лицензий. Официальный сайт не сильно помогает разобраться, хотя и содержит текст условий и соглашений.


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

Читать дальше →

Пробуем Qt 4.6: Qt Animations и State Machine

Время на прочтение8 мин
Охват и читатели14K
image
На днях вышло так называемое «технологическое превью» (technological preview) Qt 4.6, которое позволяет уже сейчас попробовать новые фичи, которые войдут в релиз 4.6 этого замечательного фреймворка. Перечислять новшества я не буду — они были достаточно хорошо освещены в этом топике, а подробнее остановлюсь на двух из них: State Machine и Qt Animation Framevork.

Итак, что же они из себя представляют?
Я хочу прочитать длинный пост и посмотреть 4 коротеньких видео

SpeedReader — Qt библиотека для скорочтения

Время на прочтение5 мин
Охват и читатели31K
image

Предисловие


Некоторое время назад на Хабре была новость о Spritz — программной реализации техники скорочтения, основанной на быстрой смене слов в виджете с определенным центрированием самого слова внутри виджета, а чуть позже и другая новость. Так как тема довольно актуальная я, недолго думая, решил реализовать нечто подобное и универсальное, с возможностью встраивания такого виджета для скорочтения в программы на различных платформах (win, linux, mac, android). Исходя из этого условия был выбран Qt фрейморк с его широкой поддержкой различных платформ.

То, что получилось и как с этим работать описано ниже. Кому интересно, добро пожаловать.
Читать дальше →

Программирование на PyQt4. Часть 2

Время на прочтение7 мин
Охват и читатели12K
Благодаря хорошим людям автор этого цикла статей получил инвайт и все последующие статьи будут опубликоваться им, поэтому не присваивайте эту работу мне. Я просто его друг. ;)
image
Читать 2-ую часть

ACE: самый функциональный редактор кода

Время на прочтение8 мин
Охват и читатели92K


Здравствуйте, господа!

Я был достаточно приятно удивлен, когда узнал, что проект Ajax.org, именуемый Ace почти ни разу не упоминался на хабре. Ace — это веб-редактор исходного кода нового поколения. Он поддерживает уйму различных функций, среди которых: наличие режимов подсветки синтаксиса для более чем 60 языков программирования, поддержка сумашедшего количества цветовых схем из различных популярных IDE, функций, среди которых: широкая кастомизация, проверка синтаксиса для нескольких скриптовых языков. Так уж получилось, что эта статья скорее всего будет разносторонняя, т.е. содержать материал для веб-разработчиков и С++ программистов, которых я так успешно агитирую в сторону Qt. Итак, что вы можете прочитать в этой статье?

  • Быстрый старт с Ace. Где я могу использовать Ace? Почему?
  • Портирование Ace на Qt и обертка его API: How-To для создателей Qt5-based библиотек (таких как мой порт Ace — Novile

Сейчас позволю себе показать пару скриншотов example-приложения, которое использует мою библиотеку Novile:

Читать дальше →

Вклад авторов