對於在嵌入式或其它Qt項目中,事件是經常用的東西,很是方便.下面總結一些常用的例子,在例子中學習這個事件,會更快些.
一.實現移動鼠標獲取座標
#include <QApplication> #include <QWidget> #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 app(argc, argv); EventLabel *label = new EventLabel; label->setWindowTitle("MouseEvent Demo"); label->resize(300, 200); label->show(); return app.exec(); }
一個小例子,就說明了鼠標事件的用法,調試這個小例子,很快就學會了.