void RenderArea::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.fillRect(event->rect(), QBrush(Qt::white)); painter.translate(this->width()/3, this->height()/2.5); painter.save(); transformPainter(painter); drawShape(painter); painter.restore(); drawOutline(painter); transformPainter(painter); drawCoordinates(painter); }
void RenderArea::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); if (!operations.empty()) painter.fillRect(event->rect(), QBrush(Qt::white)); painter.fillRect(event->rect(), QBrush(Qt::black)); painter.translate(this->width()/3, this->height()/3); transformPainter(painter); drawShape(painter); transformPainter(painter); drawCoordinates(painter); }
//! [5] void RenderArea::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.fillRect(event->rect(), QBrush(Qt::white)); painter.translate(66, 66); //! [5] //! [6] painter.save(); transformPainter(painter); drawShape(painter); painter.restore(); //! [6] //! [7] drawOutline(painter); //! [7] //! [8] transformPainter(painter); drawCoordinates(painter); }
void NoiseGen::mainLoop() { bool quit = false; bool refresh = true; //int cursor = 0; //bool viewcontrol = false; // int viewcontrolunits = 12; // how many units moved when in view control bool mapDrag = false; sf::Vector2i mapDragOffset; //debug //std::cout << "SCREEN :" << IMAGE_SIZE*IMAGE_SCALE+RIGHT_MARGIN_WIDTH << "," << IMAGE_SIZE*IMAGE_SCALE+BOTTOM_MARGIN_HEIGHT << std::endl; while(!quit) { sf::Event event; screen->clear(); //check for right mouse button release if dragging if(mapDrag && !sf::Mouse::isButtonPressed(sf::Mouse::Right)) { mapDrag = false; xpos = xpos - (sf::Mouse::getPosition(*screen).x - mapDragOffset.x); ypos = ypos - (sf::Mouse::getPosition(*screen).y - mapDragOffset.y); refresh = true; } else if(mapDrag) refresh = true; //create, populate, and display map image if(refresh) { if(sf::Mouse::isButtonPressed(sf::Mouse::Right) && mapDrag) { int x_off = sf::Mouse::getPosition(*screen).x - mapDragOffset.x; int y_off = sf::Mouse::getPosition(*screen).y - mapDragOffset.y; createMapImage(xpos - x_off, ypos - y_off); } else createMapImage(xpos, ypos); refresh = false; } //DRAW OBJECTS drawMap(); drawSliders(); drawButtons(); drawCoordinates( sf::Vector2i(IMAGE_SCALE*IMAGE_SIZE + 12, 300)); //debug draw mouse coordinates /* std::stringstream mpos; mpos << "(" << sf::Mouse::getPosition(*screen).x << "," << sf::Mouse::getPosition(*screen).y << ")"; sf::Text mposTXT(mpos.str(), font, 12); mposTXT.setColor(sf::Color(200,0,0)); screen->draw(mposTXT); */ //handle input while(screen->pollEvent(event)) { //if resize event happened if(event.type == sf::Event::Resized) { screen->setSize( sf::Vector2u(IMAGE_SCALE*IMAGE_SIZE + RIGHT_MARGIN_WIDTH, IMAGE_SCALE*IMAGE_SIZE + BOTTOM_MARGIN_HEIGHT)); continue; } //pass event to sliders if(updateSliders(&event)) refresh = true; //WINDOW CLOSE EVENT if(event.type == sf::Event::Closed) quit = true; // MOUSE EVENTS if(event.type == sf::Event::MouseButtonPressed) { //LEFT MOUSE BUTTON if(event.mouseButton.button == sf::Mouse::Left) { for(int i = 0; i < int(buttons.size()); i++) { if(buttons[i]->mouseIn()) { switch(i) { case 0: N_MODE = SIMPLEX; break; case 1: N_MODE = PERLIN; break; case 2: if(terrainmode) terrainmode = false; else terrainmode = true; break; case 3: exportToTXT(); break; case 4: exportToIMAGE(); break; case 5: randomPosition(); break; case 6: /* defaultSettings(); updateSliders(NULL); refresh = true; */ reloadDefaultSettings(); break; default: break; } refresh = true; } } } else if(event.mouseButton.button == sf::Mouse::Right) { sf::Vector2i m_pos = sf::Mouse::getPosition(*screen); if(m_pos.x >= 0 && m_pos.x <= mapTexture->getSize().x && m_pos.y >= 0 && m_pos.y <= mapTexture->getSize().y) { mapDrag = true; mapDragOffset = m_pos; refresh = true; } } } // KEYBOARD EVENTS if(event.type == sf::Event::KeyPressed) { //escape to quit if(event.key.code == sf::Keyboard::Escape) { quit = true; } else if(event.key.code == sf::Keyboard::Q) { /* defaultSettings(); std::cout << "loaded default settings\n"; initTerrainSlider(); // memory leak? std::cout << "initialized terrain slider\n"; updateSliders(NULL); std::cout << "updated sliders\n"; */ reloadDefaultSettings(); refresh = true; } else if(event.key.code == sf::Keyboard::F1) { segment newseg; newseg.value = 254; newseg.red = rand()%256; newseg.green = rand()%256; newseg.blue = rand()%256; terSlider->addSegment(&newseg); } else if(event.key.code == sf::Keyboard::F5) { xpos = 10; ypos = 10; refresh = true; } else if(event.key.code == sf::Keyboard::W) {ypos = ypos - IMAGE_SIZE/2; refresh = true;} else if(event.key.code == sf::Keyboard::S) {ypos = ypos + IMAGE_SIZE/2; refresh = true;} else if(event.key.code == sf::Keyboard::A) {xpos = xpos - IMAGE_SIZE/2; refresh = true;} else if(event.key.code == sf::Keyboard::D) {xpos = xpos + IMAGE_SIZE/2; refresh = true;} } } //draw screen screen->display(); } //save settings after mainloop quit saveSettings(); }
void SingleCellViewGraphPanelPlotWidget::drawCanvas(QPainter *pPainter) { foreach (SingleCellViewGraphPanelPlotCurve *curve, mCurves) static_cast<SingleCellViewQwtCurveDataAdaptor*>(curve->data())->updateSize(); switch (mAction) { case ShowCoordinates: { // We are showing some coordinates, so start by drawing our pixmap pPainter->drawPixmap(0, 0, mCanvasPixmap); // Draw the two dashed lines that show the coordinates, using a dark // cyan pen QPen pen = pPainter->pen(); QColor backgroundColor = Qt::darkCyan; backgroundColor.setAlphaF(0.69); pen.setColor(backgroundColor); pen.setStyle(Qt::DashLine); pPainter->setPen(pen); QPointF coordinates = QPointF(canvasMap(QwtPlot::xBottom).transform(mOriginPoint.x()), canvasMap(QwtPlot::yLeft).transform(mOriginPoint.y())); pPainter->drawLine(0.0, coordinates.y(), plotLayout()->canvasRect().width(), coordinates.y()); pPainter->drawLine(coordinates.x(), 0.0, coordinates.x(), plotLayout()->canvasRect().height()); // Draw the coordinates drawCoordinates(pPainter, mOriginPoint, backgroundColor, Qt::white); break; } case ZoomRegion: { // We are zooming a region, so start by drawing our pixmap pPainter->drawPixmap(0, 0, mCanvasPixmap); // Retrieve the coordinates of the region to be zoomed QRectF zoomRegionRect = zoomRegion(); // Now, draw the region to be zoomed QColor penColor = Qt::darkRed; QColor brushColor = Qt::yellow; penColor.setAlphaF(0.69); brushColor.setAlphaF(0.19); pPainter->setPen(penColor); QwtScaleMap canvasMapX = canvasMap(QwtPlot::xBottom); QwtScaleMap canvasMapY = canvasMap(QwtPlot::yLeft); double left = canvasMapX.transform(zoomRegionRect.left()); double top = canvasMapY.transform(zoomRegionRect.top()); QRectF unmappedZoomRegionRect = QRectF(left, top, canvasMapX.transform(zoomRegionRect.right())-left, canvasMapY.transform(zoomRegionRect.bottom())-top); pPainter->fillRect(unmappedZoomRegionRect, brushColor); pPainter->drawRect(unmappedZoomRegionRect); // Draw the two sets of coordinates drawCoordinates(pPainter, zoomRegionRect.topLeft(), penColor, Qt::white, BottomRight, false); drawCoordinates(pPainter, zoomRegionRect.bottomRight(), penColor, Qt::white, TopLeft, false); break; } default: // We aren't doing anything special, so just draw our canvas normally QwtPlot::drawCanvas(pPainter); } }
void K3ChessSettings::setDrawCoordinates(bool value) { if(value==drawCoordinates()) return; settings_.setValue("Board/DrawCoordinates", value); emit boardStyleChanged(); }
void My_Painter::paintEvent(QPaintEvent * event) { QPainter painter(this); drawCoordinates(painter); }