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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: styleSheets: фоновый рисунок у QWidget  (Прочитано 7627 раз)
vanessa
Гость
« : Апрель 06, 2011, 22:18 »

Зарядил через styleSheets фоновый рисунок в QWidget, примерно так
Код:
QWidget
{
background-image: url(:/pict/cfmain.svg);
}
но вот этот рисунок наследуется всем, что потом положено в этот віджет как-то например QFrame или QLCDNumber, а мне очень хочется чтоб они были просто прозрачными. Такое можно сделать ?
Записан
meego_man
Гость
« Ответ #1 : Апрель 07, 2011, 00:06 »

Попробуйте например использовать
Код:
.QWidget {background-image: url(:/pict/cfmain.svg);}
Записан
vanessa
Гость
« Ответ #2 : Апрель 07, 2011, 07:37 »

Попробуйте например использовать
Код:
.QWidget {background-image: url(:/pict/cfmain.svg);}
1. не сработало
2. чем оно отличается от моего ? точкой в начале ? или его не в стили записывать ?
Записан
NicK
Гость
« Ответ #3 : Апрель 07, 2011, 07:49 »

Попробуйте использовать привязку к имени виджета, тогда стиль будет применятся только к нему:

Код
C++ (Qt)
your_widget->setObjectName("your_widget");
your_widget->setStyleSheet("#your_widget{background-image: url(:/pict/cfmain.svg);}");

где, your_widget - имя важего виджета.
Записан
Fess
Гость
« Ответ #4 : Апрель 07, 2011, 09:04 »

вам сюда: http://doc.qt.nokia.com/4.7/stylesheet-syntax.html#selector-types
и.. странно, что не сработало через точку..
Записан
vanessa
Гость
« Ответ #5 : Апрель 07, 2011, 11:11 »

Я вообще слегка в замешательстве, я начал работу чисто в дизайнере, потом решил его обернуть в с++ и вот тут получил самое интересное: фон у виджета в запущенной программе вообще не отображается, присутствует только в дочернем QLCDNumber
Та программа в прицепе, посмотрите, кому не лень, там немного.....

PS Qt версии 4.7.2, ОС - Linux
Записан
meego_man
Гость
« Ответ #6 : Апрель 07, 2011, 11:15 »

1. не сработало
[/quote]
 странно, ну тогда используйте вариант предложеный NicK, он точно работает
Записан
vanessa
Гость
« Ответ #7 : Апрель 07, 2011, 11:29 »

Я сделал по своему.
У виджета в stylesheet написал
Код:
.QFrame
{
background-image: url(:/pict/cfmain.svg);
}
в виджет, положил QFrame размером с сам виджети и отключенной рамкой, и вот все что я ложу уже в тот фрейм отображается без фонового рисунка. В принципе  мне такой вариант даже больше подходит.

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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