Napisałem sobie taki prosty kod do rysowania kwadratu:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
size = 10; width = 10; height = 10;
QRgb rgb = (0, 0, 0);
image = new QImage(size*width, size*height, QImage::Format_RGB32);
try
{
showOneCell(95, 90, size, rgb);
}
catch(QString err)
{
qDebug()<<err;
}
QGraphicsScene *graphic = new QGraphicsScene (this);
graphic->addPixmap(QPixmap::fromImage(*image));
ui->graphicsView->setScene(graphic);
}
void MainWindow::showOneCell(int x, int y, int size, QRgb rgb)
{
if( x>width*size-size )
throw "x>";
if( y>height*size-size )
throw "y>";
for (int i=x; i<x+size; i++)
{
for (int j=y; j<y+size; j++)
image->setPixel(i, j, rgb);
}
}
Chciałbym się zabezpieczyć przed podaniem do funkcji showOneCell(int x, int y, int size, QRgb rgb)
argumentów x i y, które przekroczą obszar obrazu, dlatego rzucam tu wyjątki.
Wg powyższego kodu, powinien zostać rzucony wyjątek x>
i być może zostaje taki rzucony, jednak, gdy chcę uruchomić program wyskakuje mi Debug error!
Co robię nie tak?