Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Функция рисования точек
- void OscilloscopeWidget::paintEvent(QPaintEvent *event)
- {
- QPainter painter(this);
- painter.setRenderHint(QPainter::Antialiasing);
- QPen pen;
- pen.setWidth(1);
- pen.setColor(QColor(0,0,255));
- painter.setPen(pen);
- painter.save();
- for(int i = 1; i < qVectorQPointF.size(); i++)
- {
- QPointF pointOne = qVectorQPointF[i-1];
- QPointF pointTwo = qVectorQPointF[i];
- pointOne.setX(pointOne.x()*scaleX + offSetX + moveValueX);
- pointOne.setY((pointOne.y()*scaleY) + offSetY + moveValueY);
- pointTwo.setX(pointTwo.x()*scaleX + offSetX + moveValueX);
- pointTwo.setY((pointTwo.y()*scaleY) + offSetY + moveValueY);
- painter.drawLine(pointOne, pointTwo);
- }
- painter.drawRect(this->rect());
- painter.restore();
- }
- //Функция обработки нажатия левой кнопки мыши
- void OscilloscopeWidget::mousePressEvent(QMouseEvent *event)
- {
- if(event->button() & Qt::LeftButton)
- {
- mousePressed = true;
- prevMousePos = event->pos();
- moveValueX = 0;
- moveValueY = 0;
- }
- }
- //Функция обработки отпускания левой кнопки мыши
- void OscilloscopeWidget::mouseReleaseEvent(QMouseEvent *event)
- {
- if(event->button() & Qt::LeftButton)
- {
- mousePressed = false;
- offSetX += moveValueX;
- offSetY += moveValueY;
- moveValueX = 0;
- moveValueY = 0;
- }
- }
- //Функция движения мыши с жатой левой кнопкой
- void OscilloscopeWidget::mouseMoveEvent(QMouseEvent *event)
- {
- if(mousePressed == true)
- {
- QPointF newPos = event->pos() - prevMousePos;
- moveValueX = newPos.x();
- moveValueY = newPos.y();
- update();
- }
- }
- //Функция кручения колесика
- void OscilloscopeWidget::wheelEvent(QWheelEvent *event)
- {
- float count = float(event->angleDelta().y()/120);
- scaleX += count/10;
- if(scaleX < 0)
- {
- scaleX = 0;
- }
- scaleY += count/1000;
- if(scaleY < 0)
- {
- scaleY = 0;
- }
- offSetX += event->position().x() - event->position().x()*scaleX;
- offSetY += event->position().y() - event->position().y()*scaleY;
- update();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement