当前位置:编程学习 > wap >>

QLabel 显示RGB 数据

在主窗体放置一个256*256的QLabel。用这个QLabel 显示内存中处理完的图像数据(RGB565)。用QLabel的重绘事件
void Show_Video::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QImage image((uchar *) m_rgb565buffp , VIDEO_SIZE , VIDEO_SIZE , QImage::Format_RGB16);
    QPixmap pixmap;
    pixmap= pixmap.fromImage(image);

    painter.drawPixmap(0 , 0 ,pixmap , 0,0, VIDEO_SIZE,VIDEO_SIZE);

}
这样显示的效果是直角矩形。但是我想显示成圆角矩形。请我这需要怎么做??? --------------------编程问答-------------------- 位图本来就是矩形的

试试用setClipRegion能否裁剪 --------------------编程问答-------------------- setStyleSheet("QLabel{border:2px solid rgb(40,40,40,255);\
                             border-top-left-radius: 80px;\
                            border-top-right-radius: 80px;\
                            border-bottom-right-radius: 80px;\
                            border-bottom-left-radius: 80px; background-color:red}");

用这个在构造函数里面设置之后。显示出来还是矩形的。这是为什么?这个不是真正的裁剪嘛? --------------------编程问答-------------------- 没人知道该怎么办嘛? --------------------编程问答-------------------- void QPixmap::setMask ( const QBitmap & mask )
或者
void QWidget::setMask ( const QBitmap & bitmap ) --------------------编程问答-------------------- 画到内存中,再复制到屏幕上 --------------------编程问答-------------------- 用Composition,两个图像合成一个圆角矩形的,再画到label上。
看QPainter的帮助文档:enum QPainter::CompositionMode,这里有不同的混合的效果。
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,