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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: прозрачность background-image  (Прочитано 9221 раз)
spirits25
Гость
« : Февраль 14, 2012, 13:42 »

Установил фон для viewport'а, но не могу сделать его полупрозрачным, виждеты находящиеся на нём сливаются с фоном (точнее текст нечитабельный). Как установить прозрачность? сделать более светлым?
Код:
MyScrollArea.viewport().setStyleSheet(\
        "background-image: url(/myImage.png); "\
        "background-attachment: fixed; "\
        "background-repeat: no-repeat; "\
        "opacity: 100" \
        )
P.S. opacity не помогает, где-то читал, что только для всплывающих подсказок пока работает.
Записан
magog
Гость
« Ответ #1 : Февраль 16, 2012, 17:00 »

А можешь скрин показать, что бы понять на наглядном примере?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Февраль 16, 2012, 17:05 »

Установил фон для viewport'а, но не могу сделать его полупрозрачным, виждеты находящиеся на нём сливаются с фоном (точнее текст нечитабельный). Как установить прозрачность? сделать более светлым?
Все виджеты расположены поверх вьюпорта. При чём здесь его прозрачность?
Записан

Qt 5.11/4.8.7 (X11/Win)
spirits25
Гость
« Ответ #3 : Февраль 17, 2012, 11:19 »

Зачем скрин - просто QScrollArea, её виевпорту (внутреннему содержимому без полос прокруток) установлен фон. как сделать его не таким "ярким" - текст виджетов (добавленных в QScrollArea) сливается с этой картинкой?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #4 : Февраль 17, 2012, 11:26 »

Зачем скрин - просто QScrollArea, её виевпорту (внутреннему содержимому без полос прокруток) установлен фон. как сделать его не таким "ярким" - текст виджетов (добавленных в QScrollArea) сливается с этой картинкой?
Странный вопрос. А кто мешает осветлить картинку перед её установкой Непонимающий
Записан

Qt 5.11/4.8.7 (X11/Win)
spirits25
Гость
« Ответ #5 : Февраль 17, 2012, 12:59 »

Зачем скрин - просто QScrollArea, её виевпорту (внутреннему содержимому без полос прокруток) установлен фон. как сделать его не таким "ярким" - текст виджетов (добавленных в QScrollArea) сливается с этой картинкой?
Странный вопрос. А кто мешает осветлить картинку перед её установкой Непонимающий
Как?
Записан
mutineer
Гость
« Ответ #6 : Февраль 17, 2012, 13:01 »

Зачем скрин - просто QScrollArea, её виевпорту (внутреннему содержимому без полос прокруток) установлен фон. как сделать его не таким "ярким" - текст виджетов (добавленных в QScrollArea) сливается с этой картинкой?
Странный вопрос. А кто мешает осветлить картинку перед её установкой Непонимающий
Как?

Любым графическим редактором
Записан
spirits25
Гость
« Ответ #7 : Февраль 17, 2012, 13:07 »

Зачем скрин - просто QScrollArea, её виевпорту (внутреннему содержимому без полос прокруток) установлен фон. как сделать его не таким "ярким" - текст виджетов (добавленных в QScrollArea) сливается с этой картинкой?
Странный вопрос. А кто мешает осветлить картинку перед её установкой Непонимающий
Как?

Любым графическим редактором
Картинка произвольная, пользователь может свою поставить в любой момент и она "на лету" подставится с помощью setStyleSheet.
Есть другие идеи?
« Последнее редактирование: Февраль 17, 2012, 13:24 от spirits25 » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #8 : Февраль 17, 2012, 13:24 »

Картинка произвольная, пользователь может свою поставить в любой момент и она "на лету" подставится с помощью setStyleSheet
Задавай фон не через CSS, а через Qt API предварительно осветлив подгруженную картинку QPainter::fillRect().

Записан

Qt 5.11/4.8.7 (X11/Win)
spirits25
Гость
« Ответ #9 : Февраль 17, 2012, 15:34 »

Картинка произвольная, пользователь может свою поставить в любой момент и она "на лету" подставится с помощью setStyleSheet
Задавай фон не через CSS, а через Qt API предварительно осветлив подгруженную картинку QPainter::fillRect().

Попробую..

Код:
    def setBackGround_image(self, image_path):
        p = QtGui.QPalette()       
        pixmap1 = QtGui.QPixmap(image_path)
       
        rect = QtCore.QRect(self.geometry())
        size = QtCore.QSize(rect.width() , rect.height())
        pixmap = pixmap1.scaled(size)
 
        p.setBrush(QtGui.QPalette.Background,  pixmap)
        self.setPalette(p)
Фон есть. А как залить QPainter::fillRect()?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #10 : Февраль 17, 2012, 16:05 »

Фон есть. А как залить QPainter::fillRect()?
Код
C++ (Qt)
QPainter p( &pixmap1 );
p.fillRect( pixmap1.rect(), QColor( 255, 255, 255, 127 ) );

Имхо, QImage будет оптимальнее чем QPixmap.
« Последнее редактирование: Февраль 17, 2012, 16:08 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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