And here is the code that I want....
#include "setrasteroptest.h"
#include <QMouseEvent>
#include <QPainter>
//Program to draw a straight line using Qt4
//constructor
setRasterOpTest
::setRasterOpTest(QWidget *parent, Qt
::WFlags flags
){
ui.setupUi(this);
palette.setColor(backgroundRole(), color);
setPalette(palette);
setMouseTracking(true);
m_bflag = false;
}
setRasterOpTest::~setRasterOpTest()
{}
void setRasterOpTest
::mousePressEvent( QMouseEvent *e
){ if (e->button() == Qt::LeftButton){
m_firstpt = e->pos();
m_lastpt = e->pos();
}
}
void setRasterOpTest
::mouseMoveEvent( QMouseEvent *e
){ if ((e->buttons() & Qt::LeftButton) ){
m_lastpt = e->pos();
m_bflag = true;
update();
}
}
void setRasterOpTest
::mouseReleaseEvent(QMouseEvent *e
){ if (e->button() == Qt::LeftButton ) {
m_lastpt = e->pos();
m_vectorLine <<
QLine( m_firstpt, m_lastpt
);
update();
}
}
painter.setPen( Qt::black );
painter.drawLines( m_vectorLine );
if( m_bflag ){
painter.drawLine( m_firstpt, m_lastpt );
m_bflag = false;
}
}
#include "setrasteroptest.h"
#include <QMouseEvent>
#include <QPainter>
//Program to draw a straight line using Qt4
//constructor
setRasterOpTest::setRasterOpTest(QWidget *parent, Qt::WFlags flags)
: QFrame(parent, flags)
{
ui.setupUi(this);
QColor color( Qt::white );
QPalette palette;
palette.setColor(backgroundRole(), color);
setPalette(palette);
setMouseTracking(true);
m_bflag = false;
}
setRasterOpTest::~setRasterOpTest()
{}
void setRasterOpTest::mousePressEvent( QMouseEvent *e ){
if (e->button() == Qt::LeftButton){
m_firstpt = e->pos();
m_lastpt = e->pos();
}
}
void setRasterOpTest::mouseMoveEvent( QMouseEvent *e ){
if ((e->buttons() & Qt::LeftButton) ){
m_lastpt = e->pos();
m_bflag = true;
update();
}
}
void setRasterOpTest::mouseReleaseEvent(QMouseEvent *e){
if (e->button() == Qt::LeftButton ) {
m_lastpt = e->pos();
m_vectorLine << QLine( m_firstpt, m_lastpt );
update();
}
}
void setRasterOpTest::paintEvent(QPaintEvent *e){
QPainter painter(this);
painter.setPen( Qt::black );
painter.drawLines( m_vectorLine );
if( m_bflag ){
painter.drawLine( m_firstpt, m_lastpt );
m_bflag = false;
}
}
To copy to clipboard, switch view to plain text mode
Thanks wysota!!!!
Bookmarks