注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

G G I C C I

 
 
 

日志

 
 

我的Qt学习笔记 6 Qt中一些常见事件的处理  

2012-07-05 22:35:50|  分类: Qt |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Title :

  • Qt 常见事件处理

   1: #include "mywidget.h"
   2: #include <QtGui>
   3: 
   4: MyWidget::MyWidget(QWidget *parent)
   5:     : QWidget(parent)
   6: {
   7:     setWindowTitle("Event Handling Demo");
   8:     setMinimumSize(500, 300);
   9:     //如果需要跟踪鼠标的坐标,那么这个函数必须调用
  10:     setMouseTracking(true);
  11: }
  12: 
  13: void MyWidget::mouseMoveEvent(QMouseEvent *event)
  14: //跟踪鼠标移动事件
  15: {
  16:     updateShowString(tr("Mouse moving\n(%1, %2)")
  17:                      .arg(event->pos().x()).arg(event->pos().y()));
  18: }
  19: 
  20: void MyWidget::enterEvent(QEvent *)
  21: //跟踪鼠标移进窗口的事件
  22: {
  23:     updateShowString(tr("Mouse entered"));
  24:     setWindowTitle("Event Handling Demo - Mouse inside");
  25: }
  26: 
  27: void MyWidget::leaveEvent(QEvent *)
  28: //跟踪鼠标移出窗口的事件
  29: {
  30:     updateShowString(tr("Mouse left"));
  31:     setWindowTitle("Event Handling Demo - Mouse outside");
  32: }
  33: 
  34: void MyWidget::mousePressEvent(QMouseEvent *event)
  35: //跟踪鼠标单击事件
  36: {
  37:     if(event->button() == Qt::LeftButton)
  38:         updateShowString(tr("Mouse pressed\n[left button]"));
  39:     else if(event->button() == Qt::RightButton)
  40:         updateShowString(tr("Mouse pressed\n[right button]"));
  41:     else if(event->button() == Qt::MiddleButton)
  42:         updateShowString(tr("Mouse pressed\n[middle button]"));
  43: }
  44: 
  45: 
  46: void MyWidget::mouseDoubleClickEvent(QMouseEvent *event)
  47: //跟踪鼠标双击事件
  48: {
  49:     if(event->button() == Qt::LeftButton)
  50:         updateShowString(tr("Mouse double clicked\n[left button]"));
  51:     else if(event->button() == Qt::RightButton)
  52:         updateShowString(tr("Mouse double clicked\n[right button]"));
  53:     else if(event->button() == Qt::MiddleButton)
  54:         updateShowString(tr("Mouse double clicked\n[middle button]"));
  55: }
  56: 
  57: void MyWidget::keyPressEvent(QKeyEvent *event)
  58: //跟踪键盘按键事件
  59: {
  60:     if(QChar::fromAscii(event->key()).isLetter())
  61:         updateShowString(QChar::fromAscii(event->key()));
  62:     else
  63:         updateShowString(QString::number(event->key()));
  64: }
  65: 
  66: void MyWidget::paintEvent(QPaintEvent *)
  67: //重绘窗口事件
  68: {
  69:     QPainter painter(this);
  70:     painter.setBrush(Qt::black);
  71:     painter.setPen(Qt::blue);
  72:     painter.setFont(QFont(tr("Microsoft Yahei"), 16, QFont::Bold));
  73:     //设置反锯齿
  74:     painter.setRenderHint(QPainter::Antialiasing);
  75:     //画一段字符串
  76:     painter.drawText(0, 0, width(), height(), Qt::AlignCenter, showString);
  77: }
  78: 
  79: void MyWidget::updateShowString(const QString & str)
  80: {
  81:     showString = str;
  82:     repaint();
  83: }
效果:
2012-07-05_22242012-07-05_22252012-07-05_22262012-07-05_2227


End :

Author : Ggicci

谢谢阅读,如果有误希望指正!

  评论这张
 
阅读(441)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017