对于在嵌入式或其它Qt项目中,事件是经常用的东西,很是方便.下面总结一些常用的例子,在例子中学习这个事件,会更快些.
一.实现移动鼠标获取坐标
#include#include #include #include 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(" ") .arg(QString::number(event->x()), QString::number(event->y())));}void EventLabel::mousePressEvent(QMouseEvent *event) //按下时,获得鼠标坐标{ this->setText(QString(" Move: (%1, %2)
") .arg(QString::number(event->x()), QString::number(event->y())));}void EventLabel::mouseReleaseEvent(QMouseEvent *event) //松开鼠标时,获取鼠标的坐标{ QString msg; msg.sprintf(" Press: (%1, %2)
", event->x(), event->y()); this->setText(msg);}int main(int argc, char *argv[]){ QApplication app(argc, argv); EventLabel *label = new EventLabel; label->setWindowTitle("MouseEvent Demo"); label->resize(300, 200); label->show(); return app.exec();} Release: (%d, %d)
一个小例子,就说明了鼠标事件的用法,调试这个小例子,很快就学会了.