Как стать автором
Обновить
6.27

Qt *

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

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

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

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



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

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

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

Читать дальше →
Всего голосов 79: ↑68 и ↓11+57
Комментарии67

Введение в Qt Quick3D

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

Читать дальше →
Всего голосов 75: ↑66 и ↓9+57
Комментарии58

Портируем код с 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-ой (и последней) главе оригинального руководства.

И вот, что мне пришлось проделать для его сборки.
Читать дальше →
Всего голосов 60: ↑58 и ↓2+56
Комментарии46

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

Время на прочтение14 мин
Количество просмотров81K


Библиотека Qt позволяет делать действительно кроссплатформенные приложения. Единожды написанный код можно откомпилировать под многие операционные системы. Но проблема именно в слове «компилировать», т.к. подразумевается, что необходимо перезагрузиться под целевую систему, иметь в ней настроенную среду разработки, установленный и настроенный зоопарк библиотек. Спасает кросс-компиляция — компиляция, производящая исполняемый код для платформы, отличной от той, на которой исполняется.
Читать дальше →
Всего голосов 59: ↑57 и ↓2+55
Комментарии24

Истории

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

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

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

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

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

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

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

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



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

Читать дальше →
Всего голосов 86: ↑70 и ↓16+54
Комментарии56

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 46: ↑41 и ↓5+53
Комментарии226

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

Время на прочтение20 мин
Количество просмотров78K

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


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


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

Читать дальше →
Всего голосов 55: ↑54 и ↓1+53
Комментарии122

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

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

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

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

Время на прочтение1 мин
Количество просмотров2.3K
PySideВ блоге Qt появилась новость о релизе PySide 1.0.0 с множественными багфиксами и поддержкой всех вкусностей Qt 4.7 (Qt Quick, QML), а также Qt Mobility.
Также сообщается, что запланированна поддержка Python 3k и более Pythonic API )
Читать дальше →
Всего голосов 61: ↑57 и ↓4+53
Комментарии20

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

Время на прочтение1 мин
Количество просмотров3.6K

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

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

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

Читать дальше →
Всего голосов 56: ↑54 и ↓2+52
Комментарии12

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
Всего голосов 53: ↑52 и ↓1+51
Комментарии31

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

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн

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

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

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


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


Видео демонстрация уязвимости (видео без звука):
Читать дальше →
Всего голосов 55: ↑53 и ↓2+51
Комментарии12

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

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

Предисловие


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

То, что получилось и как с этим работать описано ниже. Кому интересно, добро пожаловать.
Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии43

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

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

Итак, что же они из себя представляют?
Я хочу прочитать длинный пост и посмотреть 4 коротеньких видео
Всего голосов 54: ↑52 и ↓2+50
Комментарии56

Обзор Haiku R1/beta1 — пересмотр BeOS, спустя 18 лет после его последнего официального выпуска

Время на прочтение8 мин
Количество просмотров27K
image

Я ещё в начале 2000-х годов экспериментировал и использовал BeOS R5 Pro, когда компания, которая его создала, пошла ко дну. Я с интересом слежу за развитием Haiku на протяжении всех этих лет. Хотя можно утверждать, что и старая BeOS и новая Haiku, не имеют некоторых важных функций, которые присуще современным ОС, факт состоит в том, что легковесная операционная система всегда может быть, например, отличным способом привнести новую жизнь в старую или новую, но не слишком мощную железку.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии29

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

Время на прочтение7 мин
Количество просмотров12K
Благодаря хорошим людям автор этого цикла статей получил инвайт и все последующие статьи будут опубликоваться им, поэтому не присваивайте эту работу мне. Я просто его друг. ;)
image
Читать 2-ую часть
Всего голосов 55: ↑52 и ↓3+49
Комментарии53

C++/Qt: пора валить?.

Время на прочтение14 мин
Количество просмотров108K

image


Если бы раньше я запускал новый долгоживущий проект, в котором основные функции связаны с большим объёмом вычислений при каком-то взаимодействии с пользователем через графический интерфейс, я бы не задумываясь использовал С++/Qt. Это позволяло использовать один фреймворк/язык везде, независимо от структуры проекта и его компонентов, без дополнительных сложностей с зоопарком технологий и зависимостей.

Сейчас, в свете присходящего с Qt, придётся менять подход...


Читать дальше →
Всего голосов 81: ↑55 и ↓26+48
Комментарии306

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

Время на прочтение8 мин
Количество просмотров89K


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

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

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

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

Читать дальше →
Всего голосов 86: ↑67 и ↓19+48
Комментарии44

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

Работа

QT разработчик
12 вакансий