Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Продолжение архива вопросов (https://www.otvetnemail.ru/prodolzhenie-arhiva-voprosov-808/)
-   -   grabWidget() для моего виджета (https://www.otvetnemail.ru/prodolzhenie-arhiva-voprosov-808/grabwidget-dlya-moego-vidzheta-333538/)

Guest 30.09.2011 10:17

grabWidget() для моего виджета
 
Есть класс Ellipse, наследуемый от QWidget, в его конструкторе я делаю прозрачным фон виджета:Код: QPalette newPalette = palette(); newPalette.setBrush(QPalette::Window, QBrush(Qt::NoBrush)); setPalette(newPalette);Вот его функция paintEvent(...):Код: QPainter painter(this); painter.setPen(privatePen); painter.setBrush(palette().brush(QPalett e::Button)); painter.drawEllipse(privateRect);И еще функцияКод:setRect(QRect newRect){ privateRect = newRect; resize(privateRect.width(), privateRect.height()); update(privateRect.width(), privateRect.height());}privatePen, privateRect - поля виджета, которые я задаю. Если privateRect имеет длину/ширину больше 50, то когда я делаю QPixmap::grabWidget(ellipse) (или grabWidget(ellipse, ellipse->rect())), то получившаяся картинка имеет размеры 50*50, изображает верхний левый квадрат виджета. Кроме того прозрачные "уголки" виджета в картинке, полученной из этой функции превращаются в какой-то полупрозрачный мусор. Помогите сделать правильную картинку, изображающую виджет таким, какой он есть, может я че-то неправильно делаю...


Часовой пояс GMT, время: 03:33.


© www.otvetnemail.ru - Форум вопросов и ответов.