Название: Как установить тень для текста в QPushBut? Отправлено: billy4685 от Январь 28, 2016, 11:39 Здравствуйте, господа форумчане. Захотелось мне в тексте кнопки (QPushButton) сделать тень. Начал искать. Сначала порылся как это сделать через стили qss, но безрезультатно (хотя в css это возможно через text-shadow). Потом подумал сделать через QGraphicsDropShadowEffect - не вышло, хотя для QLabel выходило. Как быть? может кто-то подскажет.
Название: Re: Как установить тень для текста в QPushBut? Отправлено: kuzulis от Январь 28, 2016, 11:57 Плохо искалось?
http://stackoverflow.com/questions/20552814/drop-shadow-effect-on-qpushbutton-text Название: Re: Как установить тень для текста в QPushBut? Отправлено: billy4685 от Январь 28, 2016, 15:28 Плохо искалось? Я ж писал, что мне не нужно делать тень на QLabel-е, мне нужно на тексте QPushButton-а. А размещать всегда QLabel поверх QPushButton - не вариант. Хочется чего-то более эффективного.http://stackoverflow.com/questions/20552814/drop-shadow-effect-on-qpushbutton-text Название: Re: Как установить тень для текста в QPushBut? Отправлено: gil9red от Январь 28, 2016, 16:08 Плохо искалось? Я ж писал, что мне не нужно делать тень на QLabel-е, мне нужно на тексте QPushButton-а. А размещать всегда QLabel поверх QPushButton - не вариант. Хочется чего-то более эффективного.http://stackoverflow.com/questions/20552814/drop-shadow-effect-on-qpushbutton-text Тогда, мне кажется, нужно рисовать самому этот текст Что есть тень? Объект, закрашенный серым (черным), находящимся на заднем фоне с небольшим отклонением от основного Например: рисуете черный текст, сдвинутый вниз и вправо, поверх него рисуете текст с обычным положением Теория закончена. Как на практике будет не знаю Название: Re: Как установить тень для текста в QPushBut? Отправлено: Igors от Январь 28, 2016, 18:40 Тогда, мне кажется, нужно рисовать самому этот текст Я использую этот способ, но на тень он не очень похож :) Это "emboss", только сдвинутое изображение надо рисовать не черным а белым (или др более светлым чем текст цветом). Тогда вполне прилично. Что есть тень? Объект, закрашенный серым (черным), находящимся на заднем фоне с небольшим отклонением от основного Например: рисуете черный текст, сдвинутый вниз и вправо, поверх него рисуете текст с обычным положением Теория закончена. Как на практике будет не знаю Я ж писал, что мне не нужно делать тень на QLabel-е, мне нужно на тексте QPushButton-а. А размещать всегда QLabel поверх QPushButton - не вариант. Хочется чего-то более эффективного. Ну а открыть исходники, посмотреть и передрать? Или надо "ис каропки"? :)Название: Re: Как установить тень для текста в QPushBut? Отправлено: billy4685 от Январь 29, 2016, 09:26 Спасибо за ответы. Просто думал что в qt в qss-е есть что-то подобное text-shadow, который присущий в сss.
Название: Re: Как установить тень для текста в QPushBut? Отправлено: Old от Январь 29, 2016, 10:42 Я использую этот способ, но на тень он не очень похож :) Ну не знаю, если это не тень, то что такое тень? :)Название: Re: Как установить тень для текста в QPushBut? Отправлено: billy4685 от Январь 30, 2016, 10:34 Я использую этот способ, но на тень он не очень похож :) Ну не знаю, если это не тень, то что такое тень? :)Название: Re: Как установить тень для текста в QPushBut? Отправлено: Igors от Январь 30, 2016, 13:52 Это тень))) Это частный случай. Возьмите черный текст на светлом фоне и меньший размер шрифта (напр 12-13), а можно и шрифт "с засечками". И посмотрите как будет выглядеть 1:1 Название: Re: Как установить тень для текста в QPushBut? Отправлено: billy4685 от Январь 30, 2016, 14:32 Что то вышло подобное тени. Но пока не пойму как оно срабатывает. Если я в main.cpp задам стиль Windows.
QApplication::setStyle(QStyleFactory::create("Windows")); Сделаю кнопку недоступной (enable = false) и задам для кнопки стиль: pushButton->setStyleSheet("QPushButton:disabled {background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:0.9, stop:0 green, stop:1 grey); color: black;}"); то тогда тень появляется. Но если стиль изменю на следующий: pushButton->setStyleSheet("QPushButton:disabled {background-color: green; color: black;}"); то тени уже не видно. Название: Re: Как установить тень для текста в QPushBut? Отправлено: poru от Февраль 01, 2016, 17:23 В QLabel тень у текста получается потому, что background-color прозрачный.
Код
Название: Re: Как установить тень для текста в QPushBut? Отправлено: billy4685 от Февраль 02, 2016, 09:22 В QLabel тень у текста получается потому, что background-color прозрачный. ясноНазвание: Re: Как установить тень для текста в QPushBut? Отправлено: poru от Февраль 02, 2016, 09:56 Цитировать Это тень))) но не охота самому ее рисовать)) думал что-то есть уже готовое. Но видать придется писать свой класс кнопки и в нем переопределять метод setText и paintEvent. (( Не обязательно. Код
|