QPen方法功能(QT5.12)


//for starf study

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include
#include
#include 
#include 
//QPen类定义了QPainter应该如何绘制形状的线条和轮廓。

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QPen penA = QPen( Qt::SolidLine);  //构造一支具有1个宽度和给定样式的黑色笔
                //可选样式属于emnu Qt:PenStyle:
                /*
                     Qt::NoPen(0)        没有线条,如果图像使用这种画笔,那么图形虽然可以绘画填充,但是没有边框
                     Qt::SolidLine(1)   实线
                     Qt::DashLine(2)   虚线  由几个像素分隔的虚线。实线部分多,分隔部分少。如:_ _ _ _ _ _    而且分布均匀
                                    //这种视为连续的横线
                     Qt:Qt::DotLine(3) 虚线  由更多像素隔开的虚线。实线部分少,分隔部分多。如:. . . . .  而且分布均匀
                                    //这种视为连续的点
                     Qt::DashDotLine(4) 虚线  一个横线和一个点交替连接。如:_ . _ . _ . _ . _
                     Qt::Qt::DashDotDotLine(5) 虚线  一个横线和两个点交替连接。 如:_ .. _ .. _ ..
                     Qt::CustomDashLine(6)  //设置这个参数 用户需要用QPainterPathStroker::setDashPattern().函数自定义样式
                */
    QPen penB = QPen(QColor("red"));// 构造一支具有1个宽度和给定颜色的实线笔
    QPen penC = QPen(QBrush(),100,Qt::SolidLine,Qt::FlatCap,Qt::MiterJoin);//使用指定的画笔、宽度、线头样式、笔帽样式和连接样式构造笔。
            //第一个参数为画刷
            //第二个参数是宽度
            //第三个参数是线样式
            //第四个参数是线头样式        Qt::FlatCap      不覆盖直线端点的正方形直线端点。
                        //                            Qt::SquareCap  一种覆盖端点并超出其一半线宽的正方形线条端点。
                        //                            Qt::RoundCap  一条圆形的断点
            //第五个参数是 笔连接样式,即可以使用QPaint绘制两条连接线之间的连接。
                          // Qt::MiterJoin  线条的外边缘延伸成一定角度,并填充该区域。
                          //Qt::BevelJoin   两条线之间的三角形缺口被填满。
                          //Qt::RoundJoin   两条线之间的圆弧被填充。
    
           QBrush br = penC.brush(); //返回用于填充此笔生成的笔划的画笔。
           qDebug()<<penC.capStyle(); //返回用于此笔的线头样式
           qDebug()<<penC.color(); //返回画笔颜色
           qDebug()<<penC.dashOffset(); //返回画笔的横线偏移量。当画笔模式选择了由横线构成的画笔类型才有
           qDebug()<<penC.isSolid(); //如果画笔有实心填充,则返回true,否则返回false。
           qDebug()<<penC.joinStyle(); // 连接样式
           qDebug()<<penC.miterLimit(); //返回笔的斜接限制。斜接限制仅在连接样式设置为Qt::MiterJoin时才相关。
           qDebug()<<penC.style(); //返回画笔样式
           qDebug()<<penC.width(); //返回画笔宽度
           qDebug()<<penC.widthF(); //返回画笔宽度
           penC.setBrush(QBrush());
           penC.setCapStyle( Qt::SquareCap);
           penC.setColor(QColor(12,12,12,12));
           penC.setDashOffset(122);//这会隐式地将笔的样式转换为Qt::CustomDashLine。
           penC.setJoinStyle(Qt::RoundJoin); 
           penC.setMiterLimit(100); //这个属性是指连接点连接可以从连接点延伸多远。这用于减少直线连接之间的瑕疵
           penC.setStyle(Qt::DashLine);
           penC.setWidth(120);
           penC.setWidthF(12.0);
                    //这些设置函数用于设置画笔的各个参数

}

MainWindow::~MainWindow()
{
    delete ui;
}




你可能感兴趣的:(QT,QT基础控件,qt5,c++,qt)