Здравствуйте!
У меня в программе есть некоторые места, которые выполняются долго (больше секунды). Чтобы показать пользователю, что процесс идет, перед долгим процессом я даю команды
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>");
то при запуске программы, если на такое поле навести мышку, курсор превращается в "руку с указательным пальцем". Это правильно.
А вот если был длительный процесс, и вид курсора менялся, то после этого при наведении мышки на ссылку, курсор перестает превращаться в "руку с указательным пальцем". Он остается просто стрелкой.
Вопрос. Что делаю не так? Как правильно менять вид курсора, чтобы после он реагировал на другие элементы как положено?