Архив автора: admin

Пример использования QCustomPlot

Для начала подключим нужные файлы к проекту методом «Добавить существующие файлы …». После чего добавим в pro файл: printsupport — необходим для совместимости методов писаных в библиотеки QCustomPlot. Иначе при компиляции получим кучу ошибок: printsupport — класс который позволяет сделать печать более простой и переносимой. Далее преобразуем пустой Widget в QCustomPlot. Так же как для… Читать далее »

Пример использование qwt

Для примера постоим самый простой график в виде линии. Сначала подключим нужные заголовочные файлы: Добавим сетку: Определим сам график для прорисовки: Добавим маркеры, которые указывают  заданные точки: Зададим переменные: Перенесем заданные точки на график: Получилось следующее: Полный листинг:

Подключения QWT к проектам QT

Для сборок под Windows Если при сборке проекта использовать MinGW то модуль для дизайнера будет собран не корректно. Для корректной работы нужно собирать модуль отдельно с помощью инструментов с помощью которых был собран Qt Creator. Для этого можно перейти в «Справку» -» О программе Qt Creator». Там будет информация о сборке «Основан на ( )»… Читать далее »

Построение графиков

В данном вопросе может помочь не особо много инструментов. Но все же можно выделить две бесплатные  библиотеки которые давно используются. Это библиотеки Qwt и QCustomPlot. Так же в новых версиях появилась дополнительная библиотека для работы с графиками Qt Charts. Но по производительности и настройкам она пока проигрывает. QWT Довольна старая библиотека которая давно в разработке… Читать далее »

Диапазон хранения значений

Для получения максимального и минимального значения мы запросим их через std::numeric_limits  — которая обеспечивает стандартизированный способ запроса различных свойств арифметических типов. К таким данным можно отнести: Получаем следующий вывод через qDebug: Как видим переменные типа float и double не совсем читабельно вывелись. Внесем изменения.

QMessageBox

Модельное диалоговое окно Класс QMessageBox предоставляет модельное диалоговое окно для информирования пользователя или для того, чтобы задать пользователю вопрос и получить ответ. Окно сообщения отображает информативный текст и необязательный подробный текст для предоставление большей информации. В окне может отображаться значок и стандартные кнопки для принятия ответа пользователя. Данный класс предоставляет два API для использования QMessageBox:… Читать далее »

Время выполнения

Измерить время выполнения участка кода Для измерения времени выполнения участка кода можно использовать возможности класса QTime. Данный класс позволит замерить время в миллисекундах и вывести значения с помощью QDebug() или другого метода. Пример использования класса QTime:

Преобразование массива

Преобразование массива в вектор Рассмотрим несколько методов преобразование из массива в std::vector. Так же рассмотрим преобразование QByteArray в std::vector и QVector. Для начала рассмотрим преобразования массива в std::vector  Объявим значения для преобразования: std::copy и back_inserter Описание функции: Копирует элементы в диапазоне [first, last) в диапазон, начинающийся с результата. Функция возвращает итератор в конец целевого диапазона… Читать далее »

Шаблон класса

Шаблон класса позволяет создавать параметризированный класс. Параметром может быть любой тип или значение одного из допустимого типа. Шаблон класса сам по себе не является ни типом не объектом. Из исходного файла содержащий только определение шаблона не генерируется код. Компилятор генерирует код только когда из данного шаблона был создан конкретный класс с набором аргументов. Общая форма… Читать далее »

QWaitCondition

QWaitCondition позволяет потоку сообщать другим потокам о выполнение каких-либо условий. Один или несколько потоков могут блокировать ожидание QWaitCondition для установки условия с помощью wakeOne() или wakeAll(). Рассмотрим небольшой пример который позволяет увидеть механизм ожидания. В данном примере происходит запуск потока и установка его в ожидание. При нажатии на клавишу происходит снятия ожидания в дальнейшего его… Читать далее »