[Сниппеты Qt] Как открыть документ при запуске своей программы
Путь к открываемому файлу передаётся в качестве первого параметра при запуске соответствующей программы. Кроме имени файла в открываемую программу можно передать, например, номер документа, который должен открыться при старте программы (если документы берутся из, скажем, базы данных). В программе нам нужно просто получить передаваемый ей параметр и должным образом обработать его.

[Сниппеты Qt] Получение списка всех COM-портов
Пример получения списка всех доступных COM-портов.

Список всех COM-портов в системе


QT += serialport #В pro-файле

-----

#include <QSerialPort>
#include <QSerialPortInfo>

...

foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()){
ui->comboBox->addItem(info.portName(),info.portName());
}


[Сниппеты Qt] CRC16 для ModBus
Потребовалось вычислять контрольную сумму по алгоритму CRC для пакетов данных, передаваемых по протоколу ModBus. В интернете есть функция вычисления CRC16, но её пришлось немного переделать, чтобы результат получался с нужным порядком следования байтов (протокол ModBus требует BigEndian).

CRC16 с BigEndian для ModBus в Qt

#include <QtEndian>

...

QByteArray MainWindow::CRC16_ModBusRTU(QByteArray buf, quint16
...

[Сниппеты Qt] Раздвижное меню (слайдер)
Понадобилось мне написать программу для управления контроллером при помощи компьютера по протоколу ModBus. Встал вопрос - куда вынести меню настроек подключения? Хотелось сделать это меню ненавязчивым и симпатичным. Вот тут-то я и вспомнил про концепцию слайдеров и реализовал раздвижное меню. (изображение) (изображение) Чтобы сделать такую красоту, нужно поместить на форму компонент QFrame и кнопку QPushButton.

[Сниппеты Qt] Кнопка с фиксацией
Кнопку с фиксацией в Qt сделать очень просто: для этого нужно использовать компонент QPushButton с включённым свойством checkable (в Qt Creator задаётся в разделе QAbstractButton свойств элемента). Чтобы определить текущее состояние кнопки (зажата или отжата), следует анализировать сигнал toggled. Вот пример работы с фиксированной кнопкой.

Кнопка с фиксацией в Qt...