#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QGraphicsScene>
#include <QGraphicsLineItem>
#include <QGraphicsSceneMouseEvent>
namespace Ui {
class MainWindow;
}
{
Q_OBJECT
public:
explicit MainWindow
(QWidget *parent
= 0);
void createLine();
qreal x1,x2,y1,y2;
int i;
~MainWindow();
public slots:
void criarLinha();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
-------//------
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QGraphicsScene>
#include <QGraphicsLineItem>
#include <QEvent>
#include <QDropEvent>
#include <QSignalMapper>
#include <QMouseEvent>
#include <QtDebug>
MainWindow
::MainWindow(QWidget *parent
) : ui(new Ui::MainWindow)
{
ui->setupUi(this);
MainWindow::setCentralWidget(ui->graphicsView);
QObject::connect(ui
->action_Line,
SIGNAL(triggered
()),
this,
SLOT(criarLinha
()));
ui->graphicsView->setMouseTracking(true);
i = 0;
x1 = 0;
y1 = 0;
x2 = 0;
y2 = 0;
ui->graphicsView->setScene(scene);
scene->installEventFilter(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
// Pulbic Functions
void MainWindow::createLine()
{
scene->addItem(linha);
}
{
if((event->button() == Qt::LeftButton))
{
if(i == 0)
{
x1 = dynamic_cast<QMouseEvent*>(event)->x();
y1 = dynamic_cast<QMouseEvent*>(event)->y();
qDebug() << "x1 é igual a:" << x1;
qDebug() << "y1 é igual a:" << y1;
i = 1;
}
else
{
x2 = dynamic_cast<QMouseEvent*>(event)->x();
y2 = dynamic_cast<QMouseEvent*>(event)->y();
qDebug() << "x2 é igual a:" << x2;
qDebug() << "y2 é igual a:" << y2;
i = 0;
}
}
}
{
qDebug() << "PQP estou mexendo!!";
}
//Public Slots
void MainWindow::criarLinha()
{
createLine();
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QGraphicsScene>
#include <QGraphicsLineItem>
#include <QGraphicsSceneMouseEvent>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
virtual void mousePressEvent(QMouseEvent *qme1);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *mme2);
void createLine();
qreal x1,x2,y1,y2;
int i;
QGraphicsScene *scene;
~MainWindow();
public slots:
void criarLinha();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
-------//------
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QGraphicsScene>
#include <QGraphicsLineItem>
#include <QEvent>
#include <QDropEvent>
#include <QSignalMapper>
#include <QMouseEvent>
#include <QtDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
MainWindow::setCentralWidget(ui->graphicsView);
QObject::connect(ui->action_Line,SIGNAL(triggered()),this,SLOT(criarLinha()));
ui->graphicsView->setMouseTracking(true);
i = 0;
x1 = 0;
y1 = 0;
x2 = 0;
y2 = 0;
scene = new QGraphicsScene;
ui->graphicsView->setScene(scene);
scene->installEventFilter(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
// Pulbic Functions
void MainWindow::createLine()
{
QGraphicsLineItem *linha = new QGraphicsLineItem(x1,y1,x2,y2);
scene->addItem(linha);
}
void MainWindow::mousePressEvent(QMouseEvent *qme1)
{
QMouseEvent *event = static_cast<QMouseEvent *>(qme1);
if((event->button() == Qt::LeftButton))
{
if(i == 0)
{
x1 = dynamic_cast<QMouseEvent*>(event)->x();
y1 = dynamic_cast<QMouseEvent*>(event)->y();
qDebug() << "x1 é igual a:" << x1;
qDebug() << "y1 é igual a:" << y1;
i = 1;
}
else
{
x2 = dynamic_cast<QMouseEvent*>(event)->x();
y2 = dynamic_cast<QMouseEvent*>(event)->y();
qDebug() << "x2 é igual a:" << x2;
qDebug() << "y2 é igual a:" << y2;
i = 0;
}
}
}
void MainWindow::mouseMoveEvent(QGraphicsSceneMouseEvent *mme)
{
qDebug() << "PQP estou mexendo!!";
}
//Public Slots
void MainWindow::criarLinha()
{
createLine();
}
To copy to clipboard, switch view to plain text mode
Bookmarks