Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 04.04.2016
Сообщений: 89
1

Убегающая кнопка

28.03.2018, 21:42. Просмотров 1127. Ответов 1
Метки нет (Все метки)

Подскажите, как описать в qt событие mouseMoveEvent . По типу,как сделано на C#
C#
1
2
3
4
5
6
  private void button1_MouseMove(object sender, MouseEventArgs e)
        {
            Random r = new Random();
            button1.Left = r.Next(0, this.ClientSize.Width - button1.Width);
            button1.Top = r.Next(0, this.ClientSize.Height - button1.Height);
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2018, 21:42
Ответы с готовыми решениями:

Убегающая кнопка
Здравствуйте. Нужно сделать программу типа "убегающая кнопка", Т.Е. при наводе на кнопку мыши,...

Убегающая кнопка
Помогите сделать оконное приложение. При наведении мышкой на кнопку она появляется в другом месте.

Убегающая кнопка медленно работает
Есть программа, при наводке на кнопку она должна убегать от мышки. Координаты перемещения...

Убегающая кнопка
Суть задачи при наведении курсора на кнопку она должна убегать. Нужно сделать чтобы кнопка не...

1
Эксперт по компьютерным сетям
4792 / 2692 / 831
Регистрация: 03.11.2009
Сообщений: 8,387
Записей в блоге: 3
29.03.2018, 01:25 2
в заголовках виджета публично
C++ (Qt)
1
2
3
public:
    void mouseMoveEvent(QMouseEvent *e);
    void leaveEvent(QEvent *e);
сигналы
C++ (Qt)
1
2
3
signals:
    void Mouse_In();
    void Mouse_Out();
дальше определите им поведение в спп аля

C++ (Qt)
1
2
void pubu::mouseMoveEvent(QMouseEvent *e) {emit Mouse_In();}
void pubu::leaveEvent(QEvent *e){emit Mouse_Out();}
включите виджету трекинг

C++ (Qt)
1
this->setMouseTracking(1);
у принимающей стороны определите слоты, которые будут принимать сигналы

C++ (Qt)
1
2
3
private slots:
    void Mouse_Detector_In();
    void Mouse_Detector_Out();
и реализуйте действие в срр




вот как по движению мыши выставлять lcd:

mainwindow.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private slots:
    void Mouse_Detector_In();
    void Mouse_Detector_Out();
 
private:
    Ui::MainWindow *ui;
};
 
#endif // MAINWINDOW_H


mainwindow.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "pubu.h"
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->pushButton, SIGNAL(Mouse_In()), this, SLOT(Mouse_Detector_In()));
    connect(ui->pushButton, SIGNAL(Mouse_Out()), this, SLOT(Mouse_Detector_Out()));
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
void MainWindow::Mouse_Detector_In()
{
    this->ui->lcdNumber->display(1);
}
 
void MainWindow::Mouse_Detector_Out()
{
    this->ui->lcdNumber->display(0);
}


pubu.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ifndef PUBU_H
#define PUBU_H
 
#include <QWidget>
#include <QPushButton>
#include <QMouseEvent>
#include <QEvent>
#include <QDebug>
 
class pubu : public QPushButton
{
    Q_OBJECT
public:
    explicit pubu(QWidget *parent = nullptr);
 
    void mouseMoveEvent(QMouseEvent *e);
    void leaveEvent(QEvent *e);
 
signals:
    void Mouse_In();
    void Mouse_Out();
 
public slots:
};
 
#endif // PUBU_H


pubu.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "pubu.h"
 
pubu::pubu(QWidget *parent) : QPushButton(parent)
{
    this->setMouseTracking(1);
}
 
void pubu::mouseMoveEvent(QMouseEvent *e)
{
//    qDebug() << "mouse in " << e->isAccepted();
    emit Mouse_In();
}
 
void pubu::leaveEvent(QEvent *e)
{
//    qDebug() << "mouse out " << e->isAccepted();
    emit Mouse_Out();
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2018, 01:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Убегающая кнопка
Вечер добрый, нужна помощь в задачке. Реализовать кнопку, чувственную к движению мыши. При ее...

Убегающая кнопка
Здравствуйте товарищи программисты. Нужен проект Windows Forms &quot;убегающей кнопки&quot;. И чтобы кнопка...

Убегающая кнопка
Добрый вечер. Нужна ваша помощь нужно сделать кнопку которая убегала б от курсора. В интернете есть...

Убегающая кнопка
Добрый день, помогите решить проблему. Я написал вот такой код. #include &lt;windows.h&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.