Qt事件处理(一)
2015-09-02 12:22
507 查看
从这章开始,我将简单实现Qt事件处理的五种方式,这五种方式的实现都是基于一个自定义的Button,我将它命名为MyButton。由于我是刚学Qt,有什么讲的不对的地方,请指正,不胜感激。
首先来看第一种事件处理:"重新实现特定的事件处理器",这种方式最简单,派生于一个组件,重新实现它的事件处理。这里我主要实现的是mousePressEvent、mouseReleaseEvent以及mouseMoveEvent这三个事件处理,而实现的方式都差不多,不同在于设置Button显示的文本。
mybutton.h的头文件如下:
mybutton.cpp的文件如下:
main函数调用为:
程序运行时,Button上的文本随着鼠标在不同的位置点击、释放以及左击拖动鼠标的不同而显示相应的文本。界面如下:
FROM:http://www.cnblogs.com/venow/archive/2012/10/10/2718014.html
首先来看第一种事件处理:"重新实现特定的事件处理器",这种方式最简单,派生于一个组件,重新实现它的事件处理。这里我主要实现的是mousePressEvent、mouseReleaseEvent以及mouseMoveEvent这三个事件处理,而实现的方式都差不多,不同在于设置Button显示的文本。
mybutton.h的头文件如下:
#ifndef MYBUTTON_H #define MYBUTTON_H #include <QPushButton> #include <QMouseEvent> class MyButton : public QPushButton { protected: void mousePressEvent(QMouseEvent* event); void mouseReleaseEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); }; #endif
mybutton.cpp的文件如下:
#include "mybutton.h" void MyButton::mousePressEvent(QMouseEvent *event) { this->setText(QString("Press: %1, %2").arg(QString::number(event->x()), QString::number(event->y()))); } void MyButton::mouseReleaseEvent(QMouseEvent *event) { this->setText(QString("Release: %1, %2").arg(QString::number(event->x()), QString::number(event->y()))); } void MyButton::mouseMoveEvent(QMouseEvent *event) { this->setText(QString("Move: %1, %2").arg(QString::number(event->x()), QString::number(event->y()))); }
main函数调用为:
#include <QtGui/QApplication> #include <QtCore/QTextCodec> #include "mybutton.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030")); MyButton *button = new MyButton; button->setWindowTitle(QObject::tr("重新实现特定的事件处理器")); button->resize(400, 200); button->show(); return a.exec(); }
程序运行时,Button上的文本随着鼠标在不同的位置点击、释放以及左击拖动鼠标的不同而显示相应的文本。界面如下:
FROM:http://www.cnblogs.com/venow/archive/2012/10/10/2718014.html
相关文章推荐
- 详解 QT 源码之 Qt 事件机制原理
- Qt的signal/slot机制原理
- 自学QT之setWindowFlags的那些参数
- Qt运行一个实例进程
- Qt 进程间通信(IPC)
- Qt 系统学习目录
- Qt进程
- QT中利用多进程打开已安装的程序
- QT新建进程
- QT程序将图片资料添加到qrc文件中方法
- Qt stylesheet 源码学习
- Qt 属性
- Qt学习笔记常用容器
- 简化qt程序发布
- Qt登录对话框
- Qt中,当QDockWidget的父窗口是一个不可以拖动的QTabWidget的时候实现拖动的方法
- Qt网络编程—TCP/IP(一)
- QT显示图片
- QTP/UFT 第三方应用调用
- Qt之QTextCodec乱谈