《学习Qt之路2》笔记:Qt之事件
2013-07-30 11:04
351 查看
<center><h1>Press: (%1 , %2)</h1></center>表示的是在中间,<h1>表示的是字体
<h1>.......</h1>表示h1字体在中间范围内即(......)中的内容。
这里是表示鼠标按键的事件
代码如下:
button按键事件
代码如下:
这里需要注意的是:当重写事件回调函数时,时刻注意是否需要通过调用父类的同名函数来确保原有实现仍能继续。
如果想忽略事件,只需要调用父类的响应函数即可。
<h1>.......</h1>表示h1字体在中间范围内即(......)中的内容。
这里是表示鼠标按键的事件
代码如下:
#include <QApplication> #include <QLabel> #include <QMouseEvent> class EventLabel : public QLabel { protected: void mouseMoveEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); }; void EventLabel :: mouseMoveEvent(QMouseEvent *event) { this->setText(QString("<center><h1>Move: (%1 , %2)</h1></center>") .arg(QString::number(event->x()),QString::number(event->y()))); } void EventLabel :: mousePressEvent(QMouseEvent *event) { this->setText(QString("<center><h1>Press: (%1 , %2)</h1></center>") .arg(QString::number(event->x()),QString::number(event->y()))); } void EventLabel :: mouseReleaseEvent(QMouseEvent *event) { QString msg; msg.sprintf("<center><h1>Release: (%d , %d)</h1></center>",event->x(),event->y()); this->setText(msg); } int main(int argc, char *argv[]) { QApplication a(argc, argv); EventLabel *label = new EventLabel; label->setWindowTitle("MouseEvent Demo"); label->resize(300,200); label->setMouseTracking(true); label->show(); return a.exec(); }
button按键事件
代码如下:
//custombutton.h #include <QPushButton> #include <QDebug> #include <QMouseEvent> class CustomButton : public QPushButton { Q_OBJECT public: CustomButton(QWidget *parent = 0); protected: void mousePressEvent(QMouseEvent *event); private: void onButtonCliecked(); }; //custombutton.cpp #include "custombuttom.h" CustomButton::CustomButton(QWidget *parent ) : QPushButton(parent) { connect(this, &CustomButton::clicked, this, &CustomButton::onButtonCliecked); } void CustomButton::onButtonCliecked() { qDebug()<<"You clicked this!"; } void CustomButton::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { qDebug()<<"left"; } else { QPushButton::mousePressEvent(event); } } //main.cpp #include <QApplication> #include "custombuttom.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); CustomButton btn; btn.setText("This is a Button!"); btn.show(); return a.exec(); }
这里需要注意的是:当重写事件回调函数时,时刻注意是否需要通过调用父类的同名函数来确保原有实现仍能继续。
如果想忽略事件,只需要调用父类的响应函数即可。
相关文章推荐
- 《学习Qt之路2》笔记:Qt之事件的选择
- 【Qt笔记】事件的接受与忽略
- 【Qt笔记】事件
- 《学习Qt之路2》笔记:Qt对话框模式
- QT笔记之对鼠标移动和键盘按下事件作出反应
- 《学习Qt之路2》笔记:QT自定义信号槽
- 《学习Qt之路2》笔记:qt之添加动作
- 《学习Qt之路2》笔记:Qt之文本对话框
- 【Qt学习笔记】4.事件处理
- QT之GUI学习笔记(十五)----事件接收与忽略
- Qt学习笔记:事件系统
- 【Qt笔记】自定义事件
- QT之GUI学习笔记(十四) -----事件(event)
- 【Qt笔记】事件总结
- 《学习Qt之路2》笔记:Qt之各种画笔、画刷和绘制
- QT学习笔记13消息机制和事件
- 【Qt笔记】事件过滤器
- 《学习Qt之路2》笔记:Qt之QmessageBox
- qt事件相关学习笔记
- 嵌入式Qt开发环境搭建及移植到开发板----Qt学习笔记