Russian Qt Forum
Ноябрь 26, 2024, 07:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: После смены курсора мышки, курсор перестаёт реагировать на ссылки.  (Прочитано 3822 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Январь 20, 2009, 16:47 »

Здравствуйте!


У меня в программе есть некоторые места, которые выполняются долго (больше секунды). Чтобы показать пользователю, что процесс идет, перед долгим процессом я даю команды

Код:
QCursor cursor_wait=QCursor(Qt::BusyCursor);
qApp->setOverrideCursor(cursor_wait);

а по завершении долгих действий даю команду, чтобы вернуть состояние курсора

Код:
qApp->restoreOverrideCursor();

Все вроде бы работает - временно меняется вид курсора на курсор с часиками, потом снова курсор становится простой стрелкой.

Но есть одно но. Если в программе есть объект QLabel, который содержит URL, например так

Код:
 url=new QLabel(this);
 url->setTextInteractionFlags(Qt::TextSelectableByMouse |
                           Qt::TextSelectableByKeyboard |
                           Qt::LinksAccessibleByMouse |
                           Qt::LinksAccessibleByKeyboard);
 url->setVisible(true);
 url->setWordWrap(true);
 url->setText("<A HREF=\"http://prog.org.ru\">http://prog.org.ru</A>");

то при запуске программы, если на такое поле навести мышку, курсор превращается в "руку с указательным пальцем". Это правильно.

А вот если был длительный процесс, и вид курсора менялся, то после этого при наведении мышки на ссылку, курсор перестает превращаться в "руку с указательным пальцем". Он остается просто стрелкой.


Вопрос. Что делаю не так? Как правильно менять вид курсора, чтобы после он реагировал на другие элементы как положено?
Записан

Собираю информацию по крупицам
http://webhamster.ru
Dendy
Гость
« Ответ #1 : Январь 20, 2009, 17:56 »

Попробуйте использовать курсор только для главного окна: QWidget::setCursor() / QWidget::unsetCursor().
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #2 : Январь 20, 2009, 18:25 »

Попробуйте использовать курсор только для главного окна: QWidget::setCursor() / QWidget::unsetCursor().

Во, так заработало правильно.
Записан

Собираю информацию по крупицам
http://webhamster.ru
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.109 секунд. Запросов: 23.