본문 바로가기
과거에 공부했던 것들(저장용)/학부생

QT) Mouse 움직임 나타내기

by under_coverzzz 2015. 7. 23.
반응형

mouse.h


#ifndef MOUSE_H

#define MOUSE_H


#include <QMainWindow>

#include <QGraphicsScene>

#include <QBrush>

#include <QPixmap>

#include <QImage>

#include <QGraphicsEllipseItem>


namespace Ui {

class mouse;

}


class mouse : public QMainWindow

{

    Q_OBJECT


public:

    explicit mouse(QWidget *parent = 0);

    ~mouse();


private slots:

    void Mouse_current_pos();

    void Mouse_Pressed();

    void Mouse_left();




private:

    Ui::mouse *ui;

    QGraphicsScene *scene;


    int x,y;


};


#endif // MOUSE_H



mouse.cpp




#include "mouse.h"

#include "ui_mouse.h"

#include "my_qlabel.h"

#include <QGraphicsEllipseItem>

#include <QtWidgets>

#include <QPropertyAnimation>

#include <QBrush>

#include <QPen>

#include <math.h>


mouse::mouse(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::mouse)

{

    ui->setupUi(this);


    connect(ui->mouse_label,SIGNAL(Mouse_Pos()), this, SLOT(Mouse_current_pos()));

    connect(ui->mouse_label,SIGNAL(Mouse_Pressed()),this,SLOT(Mouse_Pressed()));

    connect(ui->mouse_label,SIGNAL(Mouse_Left()),this,SLOT(Mouse_current_pos()));

}


mouse::~mouse()

{

    delete ui;

}


void mouse::Mouse_current_pos()

{

    ui->Mouse_current->setText(QString("X = %1, Y = %2").arg(ui->mouse_label->x)

                               .arg(ui->mouse_label->y));

    ui->Mouse_current_event->setText("Mouse Moving!");

}


void mouse::Mouse_Pressed()

{

    ui->Mouse_current_event->setText("Mouse Pressed!");

}


void mouse::Mouse_left()

{

    ui->Mouse_current_event->setText("Mouse Left!");

}



main.cpp

#include "mouse.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    mouse w;
    w.show();

    return a.exec();
}

+추가적으로

my_qlabel.cpp 


#include "my_qlabel.h"

my_qlabel::my_qlabel(QWidget *parent) :
    QLabel(parent)
{


}
void my_qlabel :: mouseMoveEvent(QMouseEvent *ev)
{
    this->x = ev->x();
    this->y = ev->y();
    emit Mouse_Pos();
}

void my_qlabel::mousePressEvent(QMouseEvent *ev)
{
    emit Mouse_Pressed();
}

void my_qlabel::leaveEvent(QEvent *)
{
    emit Mouse_Left();
}


my_qlabel.h


#ifndef MY_QLABEL_H
#define MY_QLABEL_H

#include <QLabel>
#include <QMouseEvent>
#include <QDebug>

class my_qlabel : public QLabel
{
    Q_OBJECT
public:
    explicit my_qlabel(QWidget *parent = 0);

    void mouseMoveEvent(QMouseEvent *ev);
    void mousePressEvent(QMouseEvent *ev);
    void leaveEvent(QEvent *);

    int x,y;

signals:
    void Mouse_Pressed();
    void Mouse_Pos();
    void Mouse_Left();


public slots:

};

#endif // MY_QLABEL_H



반응형