C++ (Qt) for(int i=0;i<xSize;i++) for(int j=0;j<ySize;j++) { pPixmapItem[i][j] = new QGraphicsPixmapItem(); if(i % supernumber == 0) //a[i][j]=0 pPixmapItem[i][j] = scene->addPixmap(QPixmap(strMinus)); else pPixmapItem[i][j] = scene->addPixmap(QPixmap(strPlus)); }
C++ (Qt)void Grid::fitScene(){ QSize view_size = ui->graphicsView->size(); int margin = 1; QPointF pos = QPointF(margin, margin); QSizeF size = QSizeF(view_size.width()-margin*2, view_size.height()-margin*2); scene->setSceneRect(pos.x(), pos.y(), size.width(), size.height()); if (size.width()<=size.height()) imageSize=(size.width())/GridSize; else imageSize=(size.height())/GridSize; qreal scaleK; scaleK = (qreal)imageSize/imageSizeOld; for(int i=0;i<xSize;i++) for(int j=0;j<ySize;j++) { pPixmapItem[i][j]->setPos(i*(imageSize),j*(imageSize)); pPixmapItem[i][j]->setScale(scaleK); } on_deleteAndAddNew_clicked();} void Grid::on_deleteAndAddNew_clicked(){ //задержка перед перерисовкой QEventLoop loop; QTimer::singleShot(2000, &loop, SLOT(quit())); loop.exec(); int supernumber = 3; for(int i=0;i<xSize;i++) for(int j=0;j<ySize;j++) { scene->removeItem(pPixmapItem[i][j]); if(i % supernumber == 0) //a[i][j]=0 pPixmapItem[i][j] = scene->addPixmap(QPixmap(strMinus)); else pPixmapItem[i][j] = scene->addPixmap(QPixmap(strPlus)); } fitScene();}
C++ (Qt) QTimer *timer = new QTimer(this); //создание объекта типа QTimer drawGrid(); //первая прорисовка сетки QObject::connect(timer, SIGNAL(timeout()), this, SLOT(on_deleteAndAddNew_clicked())); timer->start(2000); // пускаем таймер