Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/44: Рейтинг темы: голосов - 44, средняя оценка - 4.68
polimorf96
9 / 9 / 1
Регистрация: 02.08.2010
Сообщений: 270
1

почему событие mouseMoveEvent(QMouseEvent*pe) вызывается только когда мыш перемещается и одновременно удержана одна из кнопок?

17.03.2011, 21:11. Просмотров 8135. Ответов 2
Метки нет (Все метки)

имеется задача:
на экране окно должно показывать координаты(только координата Х) курсора относительно левого верхнего угла экрана.(QT)
вот реализовал как программу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef SERV_H
#define SERV_H
 
#include <QtGui>
class MouseServ:public QLabel
{
 
public:
    MouseServ(QWidget* pwgt=0);
protected:
    virtual void mouseMoveEvent(QMouseEvent*pe);
};
 
#endif // SERV_H
эт. был заголовочный файл с описанием класса а вот main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <serv.h> ///заголовочный файл описанный выше включается в main.cpp
MouseServ::MouseServ(QWidget *pwgt) : QLabel(pwgt)
{}
void MouseServ::mouseMoveEvent(QMouseEvent*pe)
{
    this->setNum(pe->globalX());
}
////////////////////////////////////////////////////////////////////////знаю что определения функций-членов ///////////////////класса должны быть в другом файле но сейчас это не главное
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MouseServ m1;
    m1.show();
 
    return a.exec();
}
всё работает но лейбел на экране показывает координаты(а точнее только координату так и задумано) только при нажатии кнопки мыши но мне нужно чтоб координаты менялись всегда при перемещении. Как это организовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2011, 21:11
Ответы с готовыми решениями:

Почему не вызывается событие OnShow диалога TOpenDalog ?
На форму кинул компонент TOpenDalog, в его событие OnShow записал: ...

Событие вызывается только при повторном нажатии.
После передачи данных, в скрипте должно открыться окно в стиле- ПИСЬМО...

На побережье три маяка; определить, когда они одновременно отключатся и когда одновременно загорятся
«На побережье три маяка. Первый светит в течение 3-х секунд, затем он...

Почему когда изменяется значение ячейки DataGridView, то не вызывается обработчик события CellValueChanged?
Всё предельно просто. Скропаем таблицу dataGridView1 из двух столбцов. Первый...

При запуске проекта запускаются 2 формы одновременно, хотя должна только одна
При запуске проекта запускаются 2 формы одновременно. Хотя в Project - Options-...

2
Kohei
0 / 0 / 0
Регистрация: 06.04.2011
Сообщений: 1
09.04.2011, 23:47 2
Странно, что никто так и не ответил на этот вопрос...
По-умолчанию, при движении мышкой над виджетом mouseMoveEvent вызывается только один раз (когда курсор входит в область виджета). Чтобы этот эвент вызывался при любом сдвиге курсора, надо явно указать это "желание" =) Добавь в конструктор setMouseTracking(true)
0
polimorf96
9 / 9 / 1
Регистрация: 02.08.2010
Сообщений: 270
10.04.2011, 18:10  [ТС] 3
Цитата Сообщение от Kohei Посмотреть сообщение
Странно, что никто так и не ответил на этот вопрос...
По-умолчанию, при движении мышкой над виджетом mouseMoveEvent вызывается только один раз (когда курсор входит в область виджета). Чтобы этот эвент вызывался при любом сдвиге курсора, надо явно указать это "желание" =) Добавь в конструктор setMouseTracking(true)
спасибо!
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2011, 18:10

Почему в VS, когда одновременно открыто несколько программ, пробуешь запустить одну из них, запускается другая?
Глупейший вопрос.. Почему в Visual Studio, когда одновременно открыто...

Почему когда создаются динамические ссылки, сразу срабатывает событие RequestNavigate
private void CreateAHyperlinkDynamically(string nameLink, string url, int...

Почему выводится только одна строка?
Добрый вечер. Имеется длинная функция create or replace FUNCTION...


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

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

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