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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Убрать фон у виджета  (Прочитано 4950 раз)
AfterEarth
Гость
« : Январь 12, 2011, 06:38 »

Здравствуйте ещё раз!

Есть ещё одна проблема - у виджета верхнего уровня я ставлю градиент:
Код:
setStyleSheet(QString::fromUtf8("background-color: qlineargradient(spread:pad, x1:0.497297, y1:0.006, x2:0.498, y2:1, stop:0 rgba(207, 207, 207, 255), stop:0.497297 rgba(239, 239, 239, 255), stop:0.967568 rgba(207, 207, 207, 255));"));

потом на одном из нижних уровней создаю объект, унаследованный от QPushButton и там все его элементы имеют такой-же градиент. Как его убрать у наследника QPushButton и его элементов?
Код:
Product_Label_New::Product_Label_New(QWidget *parent, QString p_name, QString p_id)
    : QPushButton(parent)
{
    product_name = p_name;
    product_id = p_id;
    //QPalette pal = this->palette();
    //pal.setColor(QPalette::Background,QColor(255,255,255,0));
    //this->setPalette(pal);
    this->setStyleSheet("background-color: rgba(0,0,0,0);");
    resize(397,287);
    this->setFixedSize(397,287);
    this->setMinimumSize(397,287);
    this->setStyleSheet("margin: 0px;");
    this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);

    QImage image(":/images/fon_product.png");
    if (!image.isNull())
    {
        QImage img1 = image.scaled(QSize(397,287),Qt::IgnoreAspectRatio,Qt::SmoothTransformation);
        QIcon icon;
        icon.addPixmap (QPixmap::fromImage(img1), QIcon::Normal, QIcon::Off);
        setIcon(icon);
        setIconSize(QSize(397,287));
     
    }
    QGridLayout *mainlayout = new QGridLayout(this);

        QLabel *lbl = new QLabel(this);
        lbl->setText("Текст");
        lbl->setStyleSheet("color: #f40000;");
        lbl->setFont(QFont("Arial",13,QFont::Bold));
        lbl->move(40,20);
/*
У этой метки стоит градиент, как у верхнего виджета :(
*/

....

Заранее благодарен за ответ!

P.S. Версия Qt 4.7.0
Записан
merke
Гость
« Ответ #1 : Январь 12, 2011, 10:08 »

данная тема уже обсуждалась на форуме. поищи
Записан
AfterEarth
Гость
« Ответ #2 : Январь 12, 2011, 10:34 »

Александр, подскажите хотя-бы по каким словам искать? Я новичок (и в Qt и здесь) и при поиске по словам widget градиент получил много страниц тем, на которых я пока не нашёл ничего по данной теме.. Грустный
Заранее премного благодарен!
Записан
merke
Гость
« Ответ #3 : Январь 12, 2011, 10:39 »

http://www.prog.org.ru/index.php?topic=14754.msg97062#msg97062
Записан
twp
Гость
« Ответ #4 : Январь 12, 2011, 11:19 »

.QPushButton или QPushButton#objectName
http://doc.crossplatform.ru/qt/4.6.x/stylesheet-syntax.html#selector-types
Записан
AfterEarth
Гость
« Ответ #5 : Январь 12, 2011, 12:24 »

Александр, twp - огромное спасибо Вам за ответы! Теперь стало более понятно!  Улыбающийся
Единственный впролс ещё - при определении стиля для объекта класса, который является потомком QPushButton и имеет своё имя (например product_class) нужно писать всё равно как QPushButton или что-то типа:
"QPushButton product_class {стиль;}" или просто достаточно "product_class {стиль;}"?

Заранее ещё раз благодарен за ответы!
Записан
twp
Гость
« Ответ #6 : Январь 12, 2011, 13:09 »

можно так
Код:
*#product_class {
 ...
}

или просто так
Код:
#product_class {
 ...
}
Если это файл стиля, где опеределены стили сразу для нескольких объектов приложения,
то предпочтительней все таки указывать класс, чтоб было легче ориентироваться
Записан
AfterEarth
Гость
« Ответ #7 : Январь 12, 2011, 23:16 »

Ага, спасибо большое!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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