LED-BOARD/simulation/VirtualLedBoard/mainwindow.cpp

49 lines
1.5 KiB
C++
Raw Normal View History

2023-08-13 22:12:38 +02:00
#include "mainwindow.h"
#include "ui_mainwindow.h"
2023-08-15 00:09:29 +02:00
#include <QPainter>
#include <QPixmap>
#include <QGraphicsPixmapItem>
#include <QGraphicsView>
2023-08-13 22:12:38 +02:00
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
2023-08-14 13:53:34 +02:00
this->server = new UdpLedServer ();
2023-08-15 00:09:29 +02:00
2023-08-15 12:51:35 +02:00
this->mOffscreenPanel = new QImage(DEFAULT_WIDTH, DEFAULT_HEIGHT, QImage::Format_RGB32);
this->mOffscreenPanel->fill(COLOR_BACKGROUND);
2023-08-15 00:09:29 +02:00
2023-08-15 12:51:35 +02:00
/* draw inital screen */
QPainter painter(this->mOffscreenPanel);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(COLOR_FOREGROUND, 1));
painter.setBrush(COLOR_FOREGROUND);
for(int x=0; x < (PANEL_WIDTH * MAXIMUM_PANELSIZE); x++) {
for(int y=0; y < PANEL_HEIGHT; y++) {
painter.drawEllipse(LED_DIAMETER/2 + (x* LED_DISTANCE), LED_DIAMETER/2 + (y * LED_DISTANCE), LED_DIAMETER, LED_DIAMETER);
}
}
this->drawImage(this->mOffscreenPanel);
2023-08-13 22:12:38 +02:00
}
MainWindow::~MainWindow()
{
delete ui;
}
2023-08-15 00:09:29 +02:00
void MainWindow::drawImage(QImage *target) {
QGraphicsView *graphicsView = new QGraphicsView();
graphicsView->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
QGraphicsScene* scene=new QGraphicsScene() ;
graphicsView->setScene(scene);
QGraphicsPixmapItem* item = new QGraphicsPixmapItem(QPixmap::fromImage(*(target)));
scene->addItem(item);
graphicsView->show();
this->ui->ledPanel->addWidget(graphicsView);
}