千张笔记

Email:rain_qian830@163.com
posts - 28, comments - 42, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

QT笔记(4)-处理鼠标响应事件

Posted on 2010-07-27 22:00 千张 阅读(3721) 评论(2)  编辑 收藏 引用 所属分类: QT学习
贴下代码:
#ifndef MYWIDGET_H
#define MYWIDGET_H

#include 
<QWidget>
#include 
<QtGui>
#include 
<QMouseEvent>

class MyWidget : public QWidget
{
public:
    MyWidget();
    
void mousePressEvent(QMouseEvent *event);
    
void mouseMoveEvent(QMouseEvent *event);
    
void mouseReleaseEvent(QMouseEvent *event);
    
void paintEvent(QPaintEvent *event);

private:
    QPoint m_PointStart;
    QPoint m_PointEnd;
};

#endif // MYWIDGET_H
#include <QtGui/QApplication>
#include 
"mainwindow.h"

#include 
"mywidget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWidget widget;
    widget.show();

    
return a.exec();
}
#include "mywidget.h"

MyWidget::MyWidget()
{
    resize(
240,320);
}

void MyWidget::mousePressEvent(QMouseEvent *event)
{
    m_PointStart 
= event->pos();

}

void MyWidget::mouseMoveEvent(QMouseEvent *event)
{
    
//m_PointEnd = event->pos();
   
//update();
}

void MyWidget::mouseReleaseEvent(QMouseEvent *event)
{
    m_PointEnd 
= event->pos();
    update();
}

void MyWidget::paintEvent(QPaintEvent *event)
{
    QPainter painter(
this);
    painter.setBrush(QBrush(QColor(
255,0,0)));
    painter.drawPixmap(
0,0,240,320,QPixmap("images/frame1.jpg"));

    
if(m_PointStart.x() < m_PointEnd.x())
        painter.drawPixmap(
0,0,240,320,QPixmap("images/frame2.jpg"));
    
else if(m_PointStart.x() > m_PointEnd.x())
        painter.drawPixmap(
0,0,240,320,QPixmap("images/frame3.jpg"));

}


Feedback

# re: QT笔记(4)-处理鼠标响应事件  回复  更多评论   

2010-10-21 08:04 by 王文靖
小弟才疏学浅,正冥思如何提取鼠标按键的坐标值,看完贵公的博客,才恍然一悟。多谢,多谢。

# re: QT笔记(4)-处理鼠标响应事件  回复  更多评论   

2012-05-21 14:29 by seaman
THANK you~~

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理