Qt部分鼠标操作函数示例

QCursor  myicon ( QPixmap ( ":/images/vvgb.png" ));  

//注意那个英文的双引号以及qrc文件中的路径前缀。

 

QApplication::setOverrideCursor(myicon );     //将鼠标指针更改为自己设置的图片

setCursor(myicon );   //这个是局部的,不像上面那个函数是全局的

setMouseTracking(true );   //开启鼠标追踪

 

 

QtGui >>>>>> QMouseEvent 

int  x =  event->x ();   //获取当前光标X 的值

int  y =  event->y ();   //获取当前光标X 的值

QString str = "(" + QString :: number(x )+ "," + QString :: number(y )+ ")" ;    //将坐标值转成字符串

button->setText ( str);   //显示在一个按钮上,或其它什么 widget 

 

 

lastPos  =   event->pos();   //QPoint lastPos; 定义一个存储当前光标所在位置的坐标的变量

myLabel->move ( lastPos );   //让按钮跟随鼠标移动,QMouseEvent  *event  鼠标事件

 

 

if(event -> button()==Qt :: LeftButton)  //按下和 释放时 判断方法

if(event -> buttons ()& Qt :: LeftButton)  // 移动时判断鼠标状态的方法

 

 

Home>>>>Namespace>>>> Qt Namespac e

enum Qt::MouseButtons  鼠标按键标记

Qt::NoButton   Qt::LeftButton    Qt::RightButton   Qt::MidButton   ......

enum Qt::CursorShape 标准内置光标形状

Qt::ArrowCursor  Qt::WaitCursor   Qt::SizeAllCursor  ......

 

 

QtGui >>>>>> QWidget       

void mouseMoveEvent(QMouseEvent   * event);

void mousePressEvent(QMouseEvent   * event);

void mouseReleaseEvent(QMouseEvent   * event);

void mouseDoubleClickEvent(QMouseEvent   * event);

void wheelEvent ( QWheelEvent   * event);

 

void MyGLWidget :: wheelEvent(QWheelEvent   * event)

{

     int  numDegrees = event -> delta()  /   8 ;   //delta()一般返回 +-120

   int  numSteps = numDegrees /  15 ;

   static  int  iwheel=0 ;

   iwheel += numSteps;  //演示鼠标滚轮上下滚动时的变化

   button2 -> setText(QString :: number(iwheel ));

}


 

Qt提供了两种用于控制鼠标光标形状的机制:

 

1.当鼠标悬停在某个特殊的窗口部件上时,QWidget::setCursor()可以设置它所使用的光标形状。如果没有为窗口部件专门设置光标,那么就会使用它的父窗口部件中的光标。顶层窗口部件的默认光标是箭头光标。


2. 对于整个应用程序中所使用的光标形状,可以通过QApplication::setOverrideCursor()进行设置,它会把不同窗口部件中的光标形状全部覆盖掉,直到调用restoreOverrideCursor()。

你可能感兴趣的:(Qt部分鼠标操作函数示例)