crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

deluxe
  опции профиля:
сообщение 8.11.2011, 19:27
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 8.11.2011
Пользователь №: 2987

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый вечер.
Необходимо реализовать программу, на основной форме которой будет одна кнопка и при наведении на неё кнопка будет перерисовываться в другое место.
Не могли бы подсказать как это возможно реализовать.
Я думаю для реализации программы необходимо отслеживать курсор мыши, но как это правильно сделать?
Прочитал про функцию EnterEvent, но не до конца с ней разобрался.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
deluxe
  опции профиля:
сообщение 9.11.2011, 16:07
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 8.11.2011
Пользователь №: 2987

Спасибо сказали: 0 раз(а)




Репутация:   0  


Попытался реализовать программу через QMouseEvent, но по моему где-то сделал что-то не так.
В заголовочном файле создал новый класс, наследуемый от QMouseEvent

class Mouse : public QMouseEvent
{

public:

int begin(int x1,int y1,int l,int h);

};

Исходник имеет следующий вид:

#include "mainwindow.h"
#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
int x1,y1,l,h,k;
x1=30; // первая координата
y1=40; // вторая координата
l=100; // длина
h= 40; // ширина
ui->pushButton->setGeometry(x1,y1,l,h); // задаю параметры кнопки (координаты)
Mouse *x = new Mouse();
k=x->begin(x1,y1,l,h);
if (k==0)
ui->pushButton->setGeometry(130,240,100,40); // меняю положение кнопки

}

MainWindow::~MainWindow()
{
delete ui;
}

int Mouse::begin(int x1,int y1,int l,int h)
{
int x,y;
x=Mouse::globalX(); // узнаю координату x
y=Mouse::globalY(); // узнаю координату y

if ((x<= x1+l) && (x>= x1) && (y>=y1) && (y<=y1+h))
{
return 0;

}

else
{
return 1;
}

}


Но при запуске выдаёт ошибку no matching function for call to QMouseEvent::QMouseEvent()
Не могли подсказать в чём ошибка?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.6.2025, 7:33