Рубрика «Qt Software» - 15

Привет, {{username}}!

«Жизнь» Джеймса Конвея на Qt

Сегодня я хочу показать, как реализовать всеми любимую игру Game Of Life Джона Конвея на Qt. Писать будем на виджетах. На примере этого проекта я покажу как работать с QPainter, несколькими классами из core, лэйаутами и вообще с графикой в Qt Widgets. Всем кому интересна эта игра или работа с графикой на Qt, прошу читать дальше. Вообще, статья ориентирована на новичков, но и продвинутым ребятам тоже будет что прочитать:).

Кому лень — вот тут лежит исходничег проекта. Можно собирать сразу, зависимости на core, gui.
Читать полностью »

Привет, {{username}}!

«Жизнь» Джона Конвея на Qt

Сегодня я хочу показать, как реализовать всеми любимую игру Game Of Life Джона Конвея на Qt. Писать будем на виджетах. На примере этого проекта я покажу как работать с QPainter, несколькими классами из core, лэйаутами и вообще с графикой в Qt Widgets. Всем кому интересна эта игра или работа с графикой на Qt, прошу читать дальше. Вообще, статья ориентирована на новичков, но и продвинутым ребятам тоже будет что прочитать:).

Кому лень — вот тут лежит исходничег проекта. Можно собирать сразу, зависимости на core, gui.
Читать полностью »

Требования к производительности ПО разные: для каких-то приложений она критична, для каких-то — нет. И даже если нет жестких ограничений, нам всегда хочется, чтобы наше ПО работало быстрее. Одним из методов, позволяющих выявить «узкие» места приложения для дальнейшей оптимизации, является профилирование.

На моей текущей работе в качестве основной IDE используется Qt Creator. Когда возникла необходимость использовать профилировщик в одном из проектов, я решил опробовать gprof, входящий в состав MinGW и поэтому не требующий никаких дополнительных действий по установке.
Читать полностью »

Помогаем KeePassX работать с Indicator Applet Complete в последних версиях Ubuntu После новости про украденную базу паролей на LinkedIn, задумался о безопасности своих паролей.

Стал искать менеджер паролей под Ubuntu 12.04, остановился на KeePassX. Он меня полностью устроил, если бы не одна мелочь: в Ubuntu 12.04 я пользуюсь Gnome Classic, и Indicator Applet Complete для часов/systray. А этот апплет рисует меню по нажатию на иконку программы левой клавишей мышки, а при нажатии на правую — рисует свои меню. И если свернуть KeePassX в трэй, то восстановить его оттуда нельзя никак.

Пытался решить проблему несколькими путями: попробовал написать на форуме, нашел такой же баг, висящий аж с 2011 года, но, похоже, автор все силы бросил на KeePassX 2, и первую версию забросил.

Ну что же, тварь я дрожащая, или право имею программист? Я решил исправить проблему самостоятельно, а именно, путем добавления нового пункта в Systray меню, то есть чтобы можно было показать главное окно из меню systray.

Предупреждаю сразу, многим статья не будет интересна, это мой первый опыт с QT, да и на C/C++ последний раз писал году в 1999, и помню лишь базовые вещи. Статью решил написать, т.к. это мой первый успешный опыт изменения OpenSource программ на QT, может, кому-то это пригодится.

Если все еще интересно, добро пожаловать под кат.
Читать полностью »

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

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

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

В ряде случаев для написания функциональных приложений на QML без знаний C++ не обойтись, и, помимо умения на нём программировать, необходимо научиться интегрировать код C++ с языком QML. Именно этому и будет посвящен весь сегодняшний вебинар.

Посмотрев данный вебинар вы узнаете, как устроено декларативное окружение Qt и как оно связано с языком QML, а также поймете, что представляет из себя программа на QML с точки зрения C++. В первых вебинарах по разработке на QML и Qt Quick мы уже частично касались этого вопроса, но сейчас разберем его подробнее, вернувшись к элементарной программе «Hello, World!» и рассмотрев её с точки зрения C++.

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

Читать полностью »

image

Салют! Как дела?

Хотел немного подучится чему-то. Искал на хабре в хабе «Qt Software» хоть какой-то пост про юнит-тестирование в Qt. Не нашел. Тут я расскажу базовые вещи про юнит-тестирование на Qt (не ожидайте могучего шаманства). На самом деле, юнит-тестить в Qt довольно просто. Что бы узнать как это делать, приглашаю читать дальше.
Читать полностью »

В сегодняшнем вебинаре про технологии QtQuick и язык QML мы поговорим про пользовательские элементы и использование ресурсов.

Посмотрев текущее видео, вы научитесь создавать пользовательские элементы и компоненты, узнаете, какая между ними разница и в каких случаях что стоит использовать. Для новых компонентов вы научитесь определять пользовательские свойства (Property <type> <name> [: <value>]) и сигналы (signal <name> [( <type> <value>, …)]).

В вебинаре будет рассказано, какие есть соглашения об именах и как использовать сигналы на уровне QML, как пользоваться модулями для определения новых элементов или экспорта существующих элементов на более высокий уровень, а также о контроле версий модулей и элементов. В заключении вебинара речь пойдет о возможности задания пространства имен (aliasing), в которое мы загружаем тот или иной компонент или модуль, и, собственно, об использовании ресурсов в приложениях на QML.

Читать полностью »

Введение

Как и большинства разработчиков Qt, использующих библиотеку OpenCV, меня заинтересовала тема представления изображения, полученного из web-камеры, как компонент визуального проектирования интерфейса для Qt Designer.
Перерыв кучу информации в сети, заметил, что большинство статей повторяют друг друга, и найти «изюминку» слишком трудно. Думаю, мой обыт создания визуальной компоненты по представлению изобравжения библиотеки OpenCV для Qt Designer будет полезен. К тому же, поделюсь информацией, как разделить библиотеки времени проектирования дизайна и времени выполнения кода. Подобный подход весьма удачно зарекомендовал себя в RAD Delphi для операционных систем семейства Windows.

Замечания

  • Автор coffeesmoke не «разжёвывает» простые истины, методы и тонкости. Код понятен. Функции не превышают 20 строк.
  • Проект и пример использования реализован на Qt Creator для ОС Linux. Разработчики Windows-приложений должны установить настройки в файлох .pro соответственно своей ОС
  • Автор не пускается в дискуссии типа «а так было бы лучше». Нашли оптимальное решение, реализуйте.
  • Автор не отвечает на вопросы настроек Qt Creator и/или Qt Designer. Поисковые системы вам в помощь!
  • Пост несёт ознакомительный характер и служит обозначению направления движения ваших мыслей. Куда они пойдут, вам виднее.

Проектирование и выполнение

Выполнение

Оставим ненадолго библиотеку OpenCV работы с изображениями. Наша задача — универсальная runtime-библиотека (библиотека времени исполнения кода).
Возможно, то, что я сейчас покажу используется повсеместно. Однако, не встретил я на просторах сети по тематике построения плагинов под Qt Designer подобного подхода.
Задача состоит в том, чтобы не «тащить» библиотеку плагина Qt Designera в проект, а обойтись библиотекой времени исполнения. Очевидно, что runtime-библиотеку можно «обрамить» виджетом представления компонента на палитре Qt Dessigner
Читать полностью »

Компания Canonical, занимающаяся разработкой популярной операционной системы Ubuntu, в последнее время активно пытается продвигать GNU/Linux в широкие массы. В Ubuntu сделали магазин приложений, упростили интерфейс, улучшили взаимодействие с социальными сетями, наладили облачную синхронизацию своей системы с мобильными платформами Android и iOS, договорились с EA Games и Humble Bundle о дистрибуции игр через свой магазин (в случае с EA пока не стоит ждать Crysis и Need For Speed, речь идёт о браузерных играх), а теперь объявляют и конкурс для разработчиков.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js