Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: enola от Август 26, 2006, 18:51



Название: Окно произвольной формы
Отправлено: enola от Август 26, 2006, 18:51
Делаю окно произвольной формы так:
Код:
MyForm::setMask( pxPicture.createHeuristicMask() );


потом накладываю на окно эту картинку (через Label):
Код:
lbPicture->setPixmap( pxPicture );


далее пытаюсь рисовать на окне в paintEvent():
Код:
pPainter.begin( this );
clColor.setRgb( 255, 255, 255 );
pPainter.setPen( clColor );
pPainter.drawText( 100, 100, sDate );


так вот этот sDate не появляется на окне, а если отключить наложение картинки: lbPicture->SetPix.... то все нормально, я так понимаю sDate нужно сделать поверх картинки, как это сделать?

P.S. Нужно чтобы надпись была на картинке.

добавлено спустя 6 часов 28 минут:

Нашел поиском идею (все убрать в paintEvent() вставить):
Код:
QPixmap imagePixmap("date.png");	

QPainter painter(&imagePixmap);
painter.drawText(10, 10, sDate);
painter.end();

setMask(imagePixmap.mask());

painter.begin(this);
painter.drawPixmap(0, 0, imagePixmap);
painter.end();


Название: Окно произвольной формы
Отправлено: Admin от Август 27, 2006, 21:05
или отрисовать все на pixmap и его в QLabel->setPixmap()
так производительность повысишь


Название: Окно произвольной формы
Отправлено: enola от Август 28, 2006, 15:42
покажи как если не сложно. :)

добавлено спустя 5 часов 2 минуты:

 Сделал я это окошко, скомпилил под nix так оно у меня в памяти 7,7 метра "жрет", это нормально?