Russian Qt Forum

Qt => QSS => Тема начата: spirits25 от Февраль 14, 2012, 13:42



Название: прозрачность background-image
Отправлено: 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 не помогает, где-то читал, что только для всплывающих подсказок пока работает.


Название: Re: прозрачность background-image
Отправлено: magog от Февраль 16, 2012, 17:00
А можешь скрин показать, что бы понять на наглядном примере?


Название: Re: прозрачность background-image
Отправлено: GreatSnake от Февраль 16, 2012, 17:05
Установил фон для viewport'а, но не могу сделать его полупрозрачным, виждеты находящиеся на нём сливаются с фоном (точнее текст нечитабельный). Как установить прозрачность? сделать более светлым?
Все виджеты расположены поверх вьюпорта. При чём здесь его прозрачность?


Название: Re: прозрачность background-image
Отправлено: spirits25 от Февраль 17, 2012, 11:19
Зачем скрин - просто QScrollArea, её виевпорту (внутреннему содержимому без полос прокруток) установлен фон. как сделать его не таким "ярким" - текст виджетов (добавленных в QScrollArea) сливается с этой картинкой?


Название: Re: прозрачность background-image
Отправлено: GreatSnake от Февраль 17, 2012, 11:26
Зачем скрин - просто QScrollArea, её виевпорту (внутреннему содержимому без полос прокруток) установлен фон. как сделать его не таким "ярким" - текст виджетов (добавленных в QScrollArea) сливается с этой картинкой?
Странный вопрос. А кто мешает осветлить картинку перед её установкой ???


Название: Re: прозрачность background-image
Отправлено: spirits25 от Февраль 17, 2012, 12:59
Зачем скрин - просто QScrollArea, её виевпорту (внутреннему содержимому без полос прокруток) установлен фон. как сделать его не таким "ярким" - текст виджетов (добавленных в QScrollArea) сливается с этой картинкой?
Странный вопрос. А кто мешает осветлить картинку перед её установкой ???
Как?


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

Любым графическим редактором


Название: Re: прозрачность background-image
Отправлено: spirits25 от Февраль 17, 2012, 13:07
Зачем скрин - просто QScrollArea, её виевпорту (внутреннему содержимому без полос прокруток) установлен фон. как сделать его не таким "ярким" - текст виджетов (добавленных в QScrollArea) сливается с этой картинкой?
Странный вопрос. А кто мешает осветлить картинку перед её установкой ???
Как?

Любым графическим редактором
Картинка произвольная, пользователь может свою поставить в любой момент и она "на лету" подставится с помощью setStyleSheet.
Есть другие идеи?


Название: Re: прозрачность background-image
Отправлено: GreatSnake от Февраль 17, 2012, 13:24
Картинка произвольная, пользователь может свою поставить в любой момент и она "на лету" подставится с помощью setStyleSheet
Задавай фон не через CSS, а через Qt API предварительно осветлив подгруженную картинку QPainter::fillRect().



Название: Re: прозрачность background-image
Отправлено: spirits25 от Февраль 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()?


Название: Re: прозрачность background-image
Отправлено: GreatSnake от Февраль 17, 2012, 16:05
Фон есть. А как залить QPainter::fillRect()?
Код
C++ (Qt)
QPainter p( &pixmap1 );
p.fillRect( pixmap1.rect(), QColor( 255, 255, 255, 127 ) );

Имхо, QImage будет оптимальнее чем QPixmap.