![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
deluxe |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 8.11.2011 Пользователь №: 2987 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Добрый вечер.
Необходимо реализовать программу, на основной форме которой будет одна кнопка и при наведении на неё кнопка будет перерисовываться в другое место. Не могли бы подсказать как это возможно реализовать. Я думаю для реализации программы необходимо отслеживать курсор мыши, но как это правильно сделать? Прочитал про функцию EnterEvent, но не до конца с ней разобрался. |
|
|
![]() |
deluxe |
![]()
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 8.11.2011 Пользователь №: 2987 Спасибо сказали: 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() Не могли подсказать в чём ошибка? |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 10.6.2025, 7:33 |