/
e-face
/
SuperPuperTerminal
Обзор
Документация
Войти
/
e-face
/
SuperPuperTerminal
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/hexviewerdialog.cpp
139 строк
4 KB
e-face
First one
14 фев 2026, 19:38
14 фев 2026, 19:38
87f499b
Код
Авторство
О чём код?
#include "hexviewerdialog.h" #include "ui_hexviewerdialog.h" #include <QBitArray> //---------------------------------------------- HexViewerDialog::HexViewerDialog(QWidget *parent) : QDialog(parent), ui(new Ui::HexViewerDialog) { ui->setupUi(this); QFont fnt = ui->tData->font(); fnt.setPixelSize(16); ui->tData->setFont(fnt); connect(ui->tData, SIGNAL(currentAddressChanged(int)), SLOT(updateResult(int))); } //---------------------------------------------- HexViewerDialog::~HexViewerDialog() { delete ui; } //---------------------------------------------- void HexViewerDialog::view(const QByteArray &data) { ui->tData->setData(data); ui->tData->setCursorPosition(0); show(); } //---------------------------------------------- void HexViewerDialog::updateResult(int pos) { QByteArray md1 = ui->tData->data().mid(pos, 1); QByteArray md2 = ui->tData->data().mid(pos, 2); QByteArray md4 = ui->tData->data().mid(pos, 4); QByteArray md8 = ui->tData->data().mid(pos, 8); QString res1; QString res2; if (md1.count() < 1) { res2.append("bin = нет данных\n"); res1.append("1b = нет данных\n"); res1.append("1bu = нет данных\n"); } else { QString bin; for (int i = 7; i >= 0; --i) bin.append((((*md1.data()) >> i) & 0x01) ? "1 " : "0 "); res1.append(" 7 6 5 4 3 2 1 0 \n"); res1.append("bin = " + bin + "\n"); res1.append("1b = " + QString::number( *(qint8*)md1.data()) + " (" + md1.toHex() + ")\n"); res1.append("1bu = " + QString::number( *(quint8*)md1.data()) + " (" + md1.toHex() + ")\n"); } if (md2.count() < 2) { res1.append("2b = нет данных\n"); res1.append("2bu = нет данных\n"); } else { res1.append("2b = " + QString::number( *(qint16*)md2.data()) + " (" + md2.toHex() + ")\n"); res1.append("2bu = " + QString::number( *(quint16*)md2.data()) + " (" + md2.toHex() + ")\n"); } if (md4.count() < 4) { res1.append("4b = нет данных\n"); res1.append("4bu = нет данных\n"); } else { res1.append("4b = " + QString::number( *(qint32*)md4.data()) + " (" + md4.toHex() + ")\n"); res1.append("4bu = " + QString::number( *(quint32*)md4.data()) + " (" + md4.toHex() + ")\n"); } if (md8.count() < 8) { res1.append("8b = нет данных\n"); res1.append("8bu = нет данных\n"); } else { res1.append("8b = " + QString::number( *(qint64*)md8.data()) + " (" + md8.toHex() + ")\n"); res1.append("8bu = " + QString::number( *(quint64*)md8.data()) + " (" + md8.toHex() + ")\n"); } if (md4.count() < 4) { res1.append("flt = нет данных\n"); } else { res1.append("flt = " + QString::number( *(float*)md4.data()) + " (" + md4.toHex() + ")\n"); } if (md8.count() < 8) { res1.append("dbl = нет данных\n"); } else { res1.append("dbl = " + QString::number( *(double*)md8.data()) + " (" + md8.toHex() + ")"); } ui->tRes1->setText(res1); ui->tRes2->setText(res2); } //---------------------------------------------- void HexViewerDialog::on_bClose_clicked() { close(); } //----------------------------------------------