Qt v.3.1.1
компонент типа QCanvasView содержит в себе канву QCanvas:
void NSwgt::create_canvas(){ //---create canvas
1) p_canv = new QCanvas();
2) p_canv->resize(200,100);
3) p_canv->setBackgroundColor(Qt::green); //---create canvas viewing
4) p_canvv = new QCanvasView(p_canv,p_wgt_draw);5)// p_canvv->resizeContents(200,100);
6)// p_canvv->setResizePolicy(QScrollView::Manual);7) p_canvv->setPaletteBackgroundColor(Qt::red);
8) p_canvv->setPaletteForegroundColor(Qt::blue); //---add canvasview to draw layout
9) p_hblay_draw->addWidget(p_canvv);
10) printf("Canvas:\n[%d,%d]\n",p_canv->width(),p_canv->height());
}строки 1-3:
создается канва с указателем p_canv, меняется ее размер и цвет
строки 4,7,8:
создается контейнер p_canvv для созданной канвы p_canv, изменяются его цвета
контейнер в развернутом виде намного больше самой канвы, но цвет канвы (зеленый) "выливается" за ее пределы, заливая всю область контейнера, т.е., нигде не будет видно синего цвета. Мне же нужно для области канвы оставить ее цвет, а остальное закрасить в какой-нить другой
было подозрение, что канва просто растягивается на всю область контейнера, игнорируя установленные размеры 200х100, но printf показал обратное, да и в контейнере все зеленое кроме тонкой черной рамки канвы. Поэтому и не понадобились строки 5 и 6, в которых устанавливается размер содержимого контейнера (т.е., размер канвы)
выходит, что контейнер зачем-то закрашивает себя всего цветом канвы. Как с этим бороться?
на
http://ftp://public.ntu-kpi.kiev.ua/incoming/canvas/canvasview_colors_trouble.pngможно увидеть эту картину
зы.
05:38:54 []illiada@ghost:210>./05
Canvas:
[200,100]
ззы. метод p_canvv->setEraseColor(Qt::blue) ничего не изменил, но рамка канвы
почему-то стала не черной, а белой