Название: QBrush и текстуры Отправлено: fear от Октябрь 16, 2008, 15:32 Код: QPainter p(this); Приведенный выше код заполняет область rect() тексурой 'panel.png'. При этом текстура не растягивается, а дублируется. Возможно ли каким-либо образом изменить способ отрисовки структуры не изменяя объекта QPixmap. (http://manifest.saidme.ru/data/screenshot.png) Название: Re: QBrush и текстуры Отправлено: Rcus от Октябрь 16, 2008, 16:26 если вам нужно именно масштабировать текстуру, то можно использовать
Цитировать void QPainter::drawPixmap ( const QRect & rectangle, const QPixmap & pixmap ) если же необходимо залить область градиентом, то есть QBrush ( const QGradient & gradient ).. Draws the given pixmap into the given rectangle. Note: The pixmap is scaled to fit the rectangle, if both the pixmap and rectangle size disagree. Название: Re: QBrush и текстуры Отправлено: Detonator от Октябрь 17, 2008, 02:23 лучше один раз растянуть текстуру и запомнить в отдельном пиксмапе, чтобы потом быстрее отрисовка шла через простой drawPixmap().
Название: Re: QBrush и текстуры Отправлено: fear от Октябрь 17, 2008, 16:53 если вам нужно именно масштабировать текстуру, то можно использовать Цитировать void QPainter::drawPixmap ( const QRect & rectangle, const QPixmap & pixmap ) если же необходимо залить область градиентом, то есть QBrush ( const QGradient & gradient ).. Draws the given pixmap into the given rectangle. Note: The pixmap is scaled to fit the rectangle, if both the pixmap and rectangle size disagree. Вопрос состоит в работе именно с текстурой и нужно имеено её масштабировать, хотелось бы использовать её в качестве фона контролов. Использовать в этих целях метод drawPixmap() не удобно, так как заставит переопределять методы отрисовки контролов. Вот если создать кисть таким образом QBrush(const QPixmap &), а затем добавить её в палитру используемую стилем... но тут появляется вопрос, как заставить текстуру назначеную кисти масштабироваться (растягиваться), а не дублироваться? Код: void MyStyle::polish(QPalette &palette) |