Реклама

QThread – создание потоков в Qt

Одним из распространённых способов создания отдельных параллельных потоков в приложении на Qt и выполнения полезных действий в них является наследование от класса QThread и переопределение метода run(), в котором и будет выполняться полезный код приложения. При знакомстве с потоками довелось прочитать различные мнения на эту тему, и в данном уроке познакомимся с одним из возможных…

ListView Qml. Динамическое создание и удаление элементов

В статье про динамическое создание виджетов в Qt я уже рассказывал, как создавать и удалять кнопки динамически, а также как с ними взаимодействовать. И там использовался Vertical Layout, а случае с Qml мы сможем использовать ListView Qml, как аналогично используется при программирование в Java под Android. Что, к слову говоря, также применимо при программировании на Qt под…
Advertisement

Переключение между окнами в Qt

На днях один из читателей обратился ко мне за помощью по поводу вопроса, ответ на который он искал в интернете. У меня не так много свободного времени, но видимо звёзды сошлись так, что и время было и вопрос из разряда тех, в которых уже имелся определённый опыт. Так вот, суть вопроса заключалась в том, чтобы…

Масштабируемый интерфейс в Qt Qml Android

Если говорить о Scalable интерфейсах, то есть масштабируемых интерфейсах при разработке приложений на Qt, то основной проблемой является то, что необходимо создать такой интерфейс, который будет читаемым абсолютно на всех экранах, будь то экран компьютера или экран смартфона. Параметры графического интерфейса, такие как ширина и высота, задаются в Qt в пикселях, но при одинаковом разрешении экрана на…

GameDev. Взрыв от пуль с помощью sprite картинки

В предыдущих статьях Мы научились рисовать sprite картинку, а также применять её в Qt с помощью QPixmap так, чтобы у нас получился анимированный взрыв. А теперь Нам необходимо этот самый взрыв помещать как раз в то место, куда ударяется пуля. То есть пуля будет взрываться. Для реализации данной задумки добавим класс спрайта из прошлого урока…

Как использовать sprite картинки с помощью QPixmap

После того, как мы нарисовали sprite в прошлом уроке по работе с Adobe Illustrator, настало время применить полученную картинку при работе с Qt и добавить её в программу с помощью QPixmap. Причем, мы сделаем анимированый sprite, и посмотрим, как происходит маленький анимированый взрыв на графической сцене нашего приложения на Qt. Структура проекта для работы с QPixmap…

Сигналы и слоты в QML Qt

А вот мы и добрались до передачи данных между слоем QML и слоем C++. Честно говоря, принцип настолько же простой, как и просто использование сигналов и слотов в одном слое C++. Особенно в Qt 5.5. Пример будет показан на основе программного кода из предыдущего урока, где мы создали диалоговое окно. Но скриншотов примера работы на…

GameDev. Обнаружение коллизий в Qt (2D)

Обнаружение коллизий является одним из важных аспектов в GameDev. Поскольку к коллизиям относится абсолютно всё: попадание пуль в противника, попадание пуль в вашего героя, пересечение тела героя со стенами, пересечение тела героя с противниками и т.д. И важным моментов является то, что герой не должен застрять в инородном объекте, впрочем как и любой другой объект,…

Перетаскивание QGraphicsItem на QGraphicsScene мышью

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

Работаем с ICMP Ping в Qt

Сходу хочу расстроить Вас, Дорогой Читатель. Qt не обладает функционалом для работы с протоколом ICMP и соответственно придется использовать для этих целей API целевой операционной системы. Впрочем, это не удивительно. Протокол ICMP является низкоуровневым протоколом, и для работы с ним требуется использование сырых сокетов, которые не реализованы в Qt. Но это не является особой проблемой,…