Qt QPainter QpinterPath QPixmap常用语句

news/2024/7/10 4:23:22 标签: qt, path

类QPainter的常用语句:
void PainterTest::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    /*QPen pen; //画笔
    pen.setColor(QColor(255,0,0));
    QBrush brush(QColor(0,255,0,125)); //画刷
    */
    QPen pen(Qt::DotLine);
    QBrush brush(Qt::blue);
    brush.setStyle(Qt::HorPattern);

    painter.setPen(pen); //添加画笔
    painter.setBrush(brush); //添加画刷

    /*画弧形*/
    QRectF rectangle(10.0, 20.0, 80.0, 60.0); //矩形
    int startAngle = 30 * 16;     //起始角度
    int spanAngle = 120 * 16;   //跨越度数
    /*设置渐变*/
    QLinearGradient linearGradient(100,150,300,150);
       //从点(100,150)开始到点(300,150)结束,确定一条直线
    linearGradient.setColorAt(0,Qt::red);
    linearGradient.setColorAt(0.2,Qt::black);
    linearGradient.setColorAt(0.4,Qt::yellow);
    linearGradient.setColorAt(0.6,Qt::white);
    linearGradient.setColorAt(0.8,Qt::green);
    linearGradient.setColorAt(1,Qt::blue);//将直线开始点设为0,终点设为1,然后分段设置颜色
    painter.setBrush(linearGradient);

    /*圆锥渐变*/
    // QConicalGradient conicalGradient(50,50,0);//圆心为(50,50),开始角度为0
    // conicalGradient.setColorAt(0,Qt::green);
    //conicalGradient.setColorAt(1,Qt::white); //从圆心的0度角开始逆时针填充
    //painter.setBrush(conicalGradient);
    /*矩形框中画字体*/
    QRectF ff(10,10,30,40); //设置一个矩形
    painter.drawRect(ff);    //为了更直观地看到字体的位置,我们绘制出这个矩形
    painter.setPen(QColor(Qt::blue));//设置画笔颜色为红色
    painter.drawText(ff,Qt::AlignHCenter,"World");

    /*设置字体*/
    QFont font("Arial",20,QFont::Bold,true);
        //设置字体的类型,大小,加粗,斜体
        font.setUnderline(true);
        //设置下划线
        font.setOverline(true);
        //设置上划线
        font.setCapitalization(QFont::SmallCaps);
        //设置大小写
        font.setLetterSpacing(QFont::AbsoluteSpacing,5);
        //设置间距

    painter.setFont(font);
    painter.drawLine(0,0,100,100);//画直线
    painter.drawArc(rectangle, startAngle, spanAngle);//画弧线
    painter.drawRect(100,100,200,100);//又画了个矩形
    painter.drawEllipse(100,0,200,200);//画圆


}

QpinterPath类常用函数:

void PainterTest::paintEvent(QPaintEvent *)
{
    QPainterPath path;
    path.lineTo(100,100);
    path.lineTo(200,100);
    path.addEllipse(100,100,50,50);
    path.lineTo(200,200);

    QPainter painter(this);
    painter.setPen(Qt::green);
    painter.setBrush(Qt::yellow);

    painter.drawPath(path);
    QPainterPath path2;
    path2.addPath(path);
    path2.translate(100,0);

    path2.moveTo(100,100);//可见moveTo函数可以改变当前点的位置
    path2.lineTo(300,300);

    painter.drawPath(path2);



}
void PainterTest::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
       QPixmap pix;
       pix.load("images/4.ico");
       painter.drawPixmap(0,0,100,100,pix);
       
       painter.translate(50,50); //让图片的中心作为旋转的中心
          painter.rotate(90); //顺时针旋转90度
          
       qreal width = pix.width(); //获得以前图片的宽和高
       qreal height = pix.height();
       
       pix = pix.scaled(width*2,height*2,Qt::KeepAspectRatio);
           //将图片的宽和高都扩大两倍,并且在给定的矩形内保持宽高的比值
       painter.drawPixmap(100,100,pix);


}





http://www.niftyadmin.cn/n/1735999.html

相关文章

C与C++中的问题

test.c: #include <stdio.h>void change (int *a,int &b,int c){c*a; b3; *a2;}int main(){int a1,b2,c3;change(&a,b,c);printf("%d %d %d \n",a,b,c);return 0;} 运行&#xff1a; Compiling... 9.c d:\vcfile\9.c(4) : error C2143: syntax error :…

HTML中<meta>标签的name属性都有哪些——标准元数据名称

是什么 标准元数据名称是在HTML的<meta> 标签中定义的name 属性的可选名称&#xff0c;name属性包含两种类型&#xff1a; 标准名称。这是规范中定义的&#xff0c;所有浏览器都能够明白其所指称的名称自定义名称。由网页作者自己定义的名称。 这里所说的标准元数据名…

OSI[七层]与TCP/IP[四层]模型简述简图

转自http://blog.csdn.net/21aspnet/article/details/5780847 OSI参考模型&#xff08;OSI/RM&#xff09;的全称是开放系统互连参考模型&#xff08;Open System Interconnection Reference Model&#xff0c;OSI/RM&#xff09;&#xff0c;它是由国际标准化组织&#xff0…

修改目录下所有文件的权限

[rootlocalhost ~]# chmod -R 777 /home/user 注&#xff1a;表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx

Content-Security-Policy —— HTML HTTP的内容安全策略

是什么 HTTP 协议的 Content-Security-Policy 响应头允许网站管理员控制用户代理可以为给定页面加载的资源 有什么用 可以防止[[跨站点脚本攻击]] 语法 Content-Security-Policy: <policy-directive>; <policy-directive>指令<policy-directive>说明 获…

Android中SQLiteDatabase操作【附源码】

Android中SQLiteDatabase操作【附源码】 点击打开链接

HTML的meta标签详解

HTML的meta标签详解 是什么 <meta> 标签是用来描述文档[[元数据]]的元素标签。 在哪里 <meta> 标签一般放置在HTML文档的 <head> 标签中 什么时候用 需要向能够读取网页代码的程序或人提供额外信息和特殊行为指令时&#xff0c;比如&#xff1a; 为HT…

Ubuntu 下使用Qt连接MySQL数据库

我的环境是11.10Qt creator 1.在软件中心安装MYSQL。 在软件中心直接输“MYSQL”关键字&#xff0c;然后安装 MYSQL客户端&#xff0c;MYSQL服务器端&#xff0c;MYSQL管理员。安MYSQL服务器端时&#xff0c;需要你输入一个密码&#xff0c;这个密码是让你设置root在MYSQL中的…