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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [решено] a:hover в QLabel  (Прочитано 6351 раз)
ieroglif
Гость
« : Ноябрь 21, 2011, 08:52 »

запихиваю в QLabel хтмл линк. хочу стилизовать. в обычном состоянии всё работает нормально, стиль для "мышка наведена" игнорируется. пытался делать и через стиль QLabel::hover и через содержимый html <style>a:hover .... </style>
при установке стиля для QLabel - внутренний текст раскрашивается нормально если не ссылка. если ссылка - полностью игнорит правила от виджета.
на просторе интеренета решения примитивно-очевидные, но почему-то не работают =( тупой копи-паст не работает и всё.
qt 4.7.3 винда
« Последнее редактирование: Ноябрь 21, 2011, 16:03 от ieroglif » Записан
ieroglif
Гость
« Ответ #1 : Ноябрь 21, 2011, 10:25 »

Код
C++ (Qt)
   ui->label->setText("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0//EN' 'http://www.w3.org/TR/REC-html40/strict.dtd'>"
                         "<html><head><style type=text/css>"
                         "a:link {color:#55789b; text-decoration:none;}"
                         "a:hover {color:#f9e699; text-decoration:underline;}"
                         "</style></head><body><a href='http://google.ru'>Google</a></body></html>");
 
проверьте этот код, пожалуйста.
у меня оно не пашет =(
Записан
andrew.k
Гость
« Ответ #2 : Ноябрь 21, 2011, 13:40 »

У кутишных виджетов не совсем полноценный CSS. Его еще называют QSS.
Поэтому многие вещи не работают.
Записан
marbius
Гость
« Ответ #3 : Ноябрь 21, 2011, 15:49 »

пытался делать и через стиль QLabel::hover

http://doc.qt.nokia.com/stable/stylesheet-reference.html
Цитировать
QLabel   Supports the box model. Does not support the :hover pseudo-state.
Записан
ieroglif
Гость
« Ответ #4 : Ноябрь 21, 2011, 16:02 »

ага.. и решение в итоге такое:
::hover для QLabel в самом QSS обрабатывается прекрасно.
соответсвенно через QSS устанавливаю расцветки, для QLabel установлен курсор "рука", на сам QLabel повешен eventFilter, который отслеживает клик и через QDesktopServices::openUrl(QUrl) делает своё грязное дело =)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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