Название: Qt style sheet + QPalette Отправлено: Nidxogg от Июль 26, 2015, 19:47 Добрый вечер
Требуется установить цвет ссылки в QLabel Сделал так Код: QString("<html> <style> a:link {color: %1;}</style><a style = 'text-decoration:none' HREF=\"%2\">").arg(myColor).arg("linkhere") + namehere +"</a></html>") Есть несколько qss файлов, как в них можно задать цвет myColor и получить его? Идеальный вариантом было бы определить QPalette::link в каждом qss файле и получать цвет как palette().link().color().name(), но не работает. Может кто подскажет выход из проблемы? Название: Re: Qt style sheet + QPalette Отправлено: vipet от Июль 26, 2015, 21:53 Для линков я использую наследника от QLabel (LinkLabel), который стилизуется как ссылка через CSS/QSS. (Т.е. без всякого HTML). В QSS прописаны разные стили для разных состояний объекта - обычный вид, наведена мышь, нажата мышь. Т.о. проблем с обычным линком нету никаких. А вот когда линк должен быть внутри текста, то это сложнее. Если это одна строка из нескольких слов, одно или пара из которых должно быть линком, то я использую два (если линк в начале или конце) или три (если линк посередине строки текста) объекта - QLabel, LinkLabel, QLabel. Название: Re: Qt style sheet + QPalette Отправлено: Nidxogg от Июль 26, 2015, 23:17 Цитировать который стилизуется как ссылка через CSS/QSS. Можно поподробнее?Название: Re: Qt style sheet + QPalette Отправлено: vipet от Июль 27, 2015, 20:45 Цитировать который стилизуется как ссылка через CSS/QSS. Можно поподробнее?Код: LinkLabel#forgot { LinkLabel - наследник QLabel forgot - имя объекта state - название свойства hover - значение свойста В данном примере подчеркивание у ссылки появляется только при наведении мыши. (Но это легко изменить, сделав "text-decoration: underline" вместо ": none" .) Название: Re: Qt style sheet + QPalette Отправлено: Nidxogg от Июль 27, 2015, 21:53 А сам цвет ссылки как задать в qss?
Ну и получается все равно ссылку через <a href> задавать в лейбл? Название: Re: Qt style sheet + QPalette Отправлено: vipet от Июль 28, 2015, 13:22 А сам цвет ссылки как задать в qss? Ну и получается все равно ссылку через <a href> задавать в лейбл? все цвета, шрифты, декорирование (подчеркнуто или нет) уже задано в CSS, который я написал выше. в тексте ссылки href не нужен но в классе LinkLabel : public QLabel надо делать свои сигналы, в частности на клик мыши. Это либо через переопределение protected методов ( *Event) либо через eventFilter() Название: Re: Qt style sheet + QPalette Отправлено: Nidxogg от Июль 28, 2015, 18:37 но в классе LinkLabel : public QLabel надо делать свои сигналы, в частности на клик мыши. Это либо через переопределение protected методов ( *Event) либо через eventFilter() Вот теперь понял мысль ;)Благодарю Тему можно закрыть. |