Qt 学习之路 2(18):事件
在看这个文章的时候完善了作者的代码: #ifndef EVENTLABEL_H #define EVENTLABEL_H #include #include class QMouseEvent; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); }; class EventLabel : public QLabel { public: EventLabel(QWidget *parent = 0); ~EventLabel(); protected: void mouseMoveEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); }; #endif // EVENTLABEL_H #include “eventlabel.h” #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { } MainWindow::~MainWindow() { } void EventLabel::mouseMoveEvent(QMouseEvent *event) { this->setText(QString(“
Move: (%1, %2)
“) .arg(QString::number(event->x()), QString::number(event->y()))); } void EventLabel::mousePressEvent(QMouseEvent *event) { this->setText(QString(“
Press: (%1, %2)
“) .arg(QString::number(event->x()), QString::number(event->y()))); } void EventLabel::mouseReleaseEvent(QMouseEvent *event) { QString msg; msg.sprintf(“
Release: (%d, %d)
“, event->x(), event->y()); this->setText(msg); } EventLabel::EventLabel(QWidget *parent) : QLabel(parent) { } EventLabel::~EventLabel() { } #include “eventlabel.h” #include
int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.resize(400,300); w.setWindowTitle(“MouseEvent Demo”); EventLabel label(&w); //label.setMouseTracking(true); label.resize(300, 200); w.show(); return a.exec(); }

还没有评论,来说两句吧...