#include "eyemap.h" #include "ui_eyemap.h" #include #include #include EyeMap::EyeMap(QWidget *parent) : QWidget(parent), ui(new Ui::EyeMap) { ui->setupUi(this); m_logger = spdlog::get("OSC"); if(m_logger == nullptr) { SPDLOG_ERROR("获取 OSC logger 失败"); return; } /* 自定义大小 */ setFixedSize(1920, 1080); /* 初始化全局数据 */ g_eyeMapMatrix.initEyeMapData(this->width(), this->height()); SPDLOG_LOGGER_INFO(m_logger, "EyeMap 初始化成功"); } EyeMap::~EyeMap() { delete ui; } /** * @brief 绘制图形 * * @param event */ void EyeMap::paintEvent(QPaintEvent *event) { QPainter painter(this); QPen pen; pen.setColor(Qt::black); pen.setWidth(1); pen.setStyle(Qt::SolidLine); QBrush brush; brush.setColor(Qt::white); brush.setStyle(Qt::SolidPattern); painter.setRenderHint(QPainter::Antialiasing, true); /* 绘制背景 */ painter.setPen(pen); painter.setBrush(brush); painter.drawRect(0, 0, this->width(), this->height()); /* 绘制刻度 */ /* 绘制网格 */ /* 绘制眼图,就是绘制 1000 * 256 个矩形 */ painter.setPen(QPen(Qt::NoPen)); g_eyeMapMatrix.mutexEyeData.lock(); for(int i = 0; i < 1000; i++) { for(int j = 0; j < 256; j++) { if(g_eyeMapMatrix.dataMatrix[i][j].isDraw == false) { continue; } painter.setBrush(QBrush(g_eyeMapMatrix.dataMatrix[i][j].color)); painter.drawRect(g_eyeMapMatrix.dataMatrix[i][j].rect); } } g_eyeMapMatrix.mutexEyeData.unlock(); event->accept(); }