Форум программистов, компьютерный форум, киберфорум
Наши страницы

Qt

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
#1

Обработка удерживания кнопки - C++ Qt

27.10.2011, 01:14. Просмотров 2390. Ответов 2
Метки нет (Все метки)

пытался на pressed() повесить слот типа такого:
C++
1
2
3
4
5
    while (1) {
        if (!ui->rotateButton->isDown()) break;
        Sleep(50)
        emit(rotate());
    }
но не вышло. зависает.

задача простая, типа жмем кнопку вызывается слот пока не отпустим её.

в гугле нету.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2011, 01:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Обработка удерживания кнопки (C++ Qt):

Обработка нажатия кнопки мыши - C++ Qt
Друзья, нужна ваша помощь. Переопределил virtual void mousePressEvent(QMouseEvent *even); И считываю координаты нажатия. И координаты мне...

Обработка нажатия кнопки мыши - C++ Qt
Друзья, начал разбираться с qt, нужна ваша помощь. Хочу обработать нажатие левой кнопки мыши на объект qgraphicsview. Проблема в написании...

QML обработка события нажатия кнопки мыши - C++ Qt
Собственно. Есть вот такой вот main.qml: import QtQuick 1.1 Rectangle { id: rectangle2 width: 360 height: 360

Обработка нажатия одной кнопки из множества других, созданных в Qt Designer - C++ Qt
Добрый день. В Qt Designer создана форма, на ней много кнопок (до 10), они названы button1, button2, button3 ... button10. Мне нужно...

Создать окно в котором при нажатии кнопки происходит обработка plaintext в главном окне - C++ Qt
Есть две проблемы: 1) Создать окно в котором при нажатии кнопки происходит обработка plain text в главном окне, желательно с примером...

Обработка удерживания кнопки нажатой - Программирование Android
Выручайте, так и не смог правильный вопрос гуглу задать, мне нужно чтобы зажатая кнопка приводила к итерации события, но в поиске под...

2
Чистый
Автор FAQ
2713 / 1409 / 73
Регистрация: 08.09.2011
Сообщений: 3,741
Записей в блоге: 1
27.10.2011, 10:10 #2
она и будет зависать, так как clicked отрабатывает после того как кнопка была отжата т.е. произошло полное нажатие и отпускание кнопки, для решения твоей проблемы, как мне кажется, можно воспользоваться событиями, а не сигналами, в частности есть класс QMouseEvent он содержит инфу о событиях вызванных мышой и хранит в себе достаточно инфы (координаты указателя, статус кнопки мыши и т.п.). У этого класса есть такой метод mousePressEvent() он отрабатывает тогда, когда была нажата одна из кнопок мышей, он будет отрабатываться до тех пор, пока не отпустят кнопку мыши, а это то что тебе надо. Так же можно узнать какая кнопка нажата для этого есть перечисление MouseButton которое содержит NoButton LeftButton RightButton и MidButton думаю этого достаточно что бы ты смог решить свою задачу....
2
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
27.10.2011, 14:25  [ТС] #3
спасибо за подсказку.

но чето не выходит.
я проверил просто на форме такой код
C++
1
2
3
4
5
void mousePressEvent(QMouseEvent * event) {
 
        qDebug() << 1;
 
}
он выводит '1' только 1 раз , а не продолжает выводить пока держишь.

Чяднт?

Добавлено через 14 минут
проблема была решена.

C++
1
2
ui->rotateButton->setAutoRepeat(true);
ui->rotateButton->setAutoRepeatDelay(500); // Задержка до начала повторов.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2011, 14:25
Привет! Вот еще темы с ответами:

функция удерживания кнопки - Delphi
Народ, необходимо реализовать функцию удерживания кнопки.Виполнялась процедура по удержанию кнопки на 1секунду на 2с и на 3с.Возможноли...

Обработка события удерживания - C#
Как можно обработать событие когда пользователь удерживает клавишу и когда отпускает?

.NET 4.x Эмуляция нажатия и удерживания клавиши - C#
Как сэмулировать нажатие и удерживание клавиши на клавиатуре? const Int32 KeyeventfExtendedkey = 0x1; const Int32...

Выделять текст БЕЗ удерживания ЛКМ - JavaScript
Текст: Это нереально осуществить? Задача: Выделение текста двумя кликами (I - текстовый курсор): 1й делаем здесь: Это неIреально...


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

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

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