qt事件分析

    對於在嵌入式或其它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();
}

一個小例子,就說明了鼠標事件的用法,調試這個小例子,很快就學會了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章