QT 类及其实现效果(7)--坐标,svg,alpha

来源:互联网 发布:淘宝客清退 编辑:程序博客网 时间:2024/06/11 21:45

坐标变换
QPainter p(this);  
p.translate(200,200); //  把窗体的坐标原点移到中心点
p.rotate(angle);//旋转
p.scale(scale,scale);//缩放
p.translate(translate,translate);//改变坐标中心点,平移
p.shear(shear,shear);//?

SVG格式显示
SVG全称是Scalable vector graphics,即可缩放的矢量图形。它是由W3C(万维网联盟)在2000年8月
制定的一种新的二维矢量图形格式,也是规范中的网络矢量图形标准。
Qt为SVG格式的图形显示与生成提供了专门的QtSvg模块。
重要的类:QSvgWidget,QSvgRender,QGraphicsSvgItem
由于Qt默认生成的Makefile中只会加入QtGui、QtCore模块的库,因此,必须在工程文件xxx.pro中
加入一行:
QT+=svg

void SvgWidget::wheelEvent(QWheelEvent * e)
{
  
     if (e->delta() > 0) {}
}

e->delta() > 0,向前滑动
e->delta()<0,向后滑动
继承自QScrollArea类,是一个带滚动条的显示区域。
记录位置
horizontalScrollBar()->value();
verticalScrollBar()->value();
更新
horizontalScrollBar()->update();
verticalScrollBar()->update();

颜色混合


获得通道值
int alpha = qAlpha(img->pixel(w,h));
获取颜色值
int red = qRed(bkColor.rgb());
int green = qGreen(bkColor.rgb());
int blue = qBlue(bkColor.rgb());
dst.setPixel(w,h,qRgb(red,green,blue));

QSlider设置

QSlider *slider = new QSlider;
slider->setRange(0,100);
slider->setTickInterval(10);//设置步进值
slider->setOrientation(Qt::Horizontal);
slider->setValue(100);

 

原创粉丝点击