qt 中画线时如何设置笔的颜色和填充

在上一次介绍中已经实现了自定义控件,并把Widget 放入了主界面中,画了一个圆,具体可参考“QT 自定义窗口”

下面我们介绍一下如何设置画笔颜色和所画图形的填充颜色。

画笔颜色:

void CircleWidget::paintEvent(QPaintEvent *event)
{
      QPainter painter(this);
      //painter.setBrush(QBrush(QColor(0x00,0xFF,0x00)));
      //painter.drawEllipse(QPoint(100,100),100,100);
      QColor green(0,0xFF,0);//设置颜色
      QPen pen(green);//定义画笔
      painter.setPen(pen);
      painter.drawRect(100,100,50,30);

}

也可以设置线的宽度和样式

void CircleWidget::paintEvent(QPaintEvent *event)
{
        QPainter painter(this);
         //painter.setBrush(QBrush(QColor(0x00,0xFF,0x00)));
         //painter.drawEllipse(QPoint(100,100),100,100);
         QColor green(0,0xFF,0);//设置颜色
         QPen pen(green);//定义画笔
         pen.setWidth(5);//
         pen.setStyle(Qt::DashDotDotLine);
         painter.setPen(pen);
         painter.drawRect(100,100,50,30);

}

填充颜色:

void CircleWidget::paintEvent(QPaintEvent *event)
{
      QPainter painter(this);
      QBrush brush(QColor(0x00,0xFF,0x00));
      painter.setBrush(brush);
      //painter.drawEllipse(QPoint(100,100),100,100);

      painter.drawRect(100,100,50,30);

}

如何更改画布颜色,可以通过上面的方式,先获取画布的长和宽,然后画一个长方形,再将长方形颜色添加为想要的颜色

void CircleWidget::paintEvent(QPaintEvent *event)
{
        QPainter painter(this);
        int width=this->width();
        int height=this->height();
         QBrush brush(QColor(0xFF,0xFF,0xFF));
         painter.setBrush(brush);

         painter.drawRect(0,0,width,height);

}

原文地址:https://www.cnblogs.com/fuhang/p/9900123.html

时间: 2024-11-11 15:23:34

qt 中画线时如何设置笔的颜色和填充的相关文章

OpenGL进阶示例1——动态画线(虚线、实线、颜色、速度等)

用OpenGL动态绘制线段,其实很简单,但到现在为止,网上可参考资料并不多.于是亲自动手写一个函数,方便动态绘制线段.代码如下: #include<GL/glut.h> //OpenGL实用工具包 #include <Windows.h> /*所遇问题: 1.系统API函数Sleep()不听话,睡眠时快时慢(可能跟我计算机当前运行程序有关吧) 解决方案:重写Sleep()函数,实质为空循环.仅用于Debug下,Release会将其优化 2.动态画直线,朝某些方向画线时出现块状 解决

4.7版本的qt中qml的背景透明设置和最小化

qml中的背景透明设置: view.setStyleSheet("background:transparent;"); view.setAttribute(Qt::WA_TranslucentBackground); qml中设置背景透明后showMinimized()(最小化)不好用解决方案是: 对qml的焦点事件重载 头文件: #ifndef QML_WIDGET_SET_H #define QML_WIDGET_SET_H #include <QDeclarativeVie

QT中运行程序时出现错误“ QApplication: No such file or directory&quot;

在根目录下创建 一个文件夹,名称为hello,在该文件夹下创建一个hello.cpp文件,内容如下: #include <QApplication> #include <QLabel> int main(int argc, char **argv) { QApplication a(argc, argv); QLabel mylabel("Hello the World"); mylabel.show(); return a.exec(); } 在该文件下运行以

Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属

在Android中,TextView是我们最常用的用来显示文本的控件. 一般情况下,TextView中的文本都是一个样式.那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下. res-layout-main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and

(转)Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性以及自定义链接到下一个Activity

在Android中,TextView是我们最常用的用来显示文本的控件. 一般情况下,TextView中的文本都是一个样式.那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下. res-layout-main.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns

(四十八)Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性

1.程序结构图 2.MainActivity.java中的代码 package com.example.setlinkdemo; import java.io.IOException; import org.xmlpull.v1.XmlPullParserException; import android.app.Activity; import android.content.Intent; import android.content.res.ColorStateList; import a

Android中Path类的lineTo方法和quadTo方法画线的区别

当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的lineTo和quadTo方法实现的绘制线路形式也是不一样的,下面就以代码的实现来直观的探究这两个方法的功能实现区别: 1. Path--->quadTo(float x1, float y1, float x2, float y2): 该方法的实现是当我们不仅仅是画一条线甚至是画弧线时会形成平滑的曲线,该曲线又称为"贝塞尔曲线"(Bezier curve),其中,x1,y1为控制点的坐标值,x2,y2为终

1.关于QT中的Graphics绘图,定时器,动画,将窗口中的内容打印到图片上,打印机,打印预览

 1 新建项目 A  修改pro中的内容如下: HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets printsupport B  编写MyWidget.h #ifndef MYWIDGET_H #define MYWIDGET_H   #include <QWidget> #include <QGraphicsScene> #include <QGraphicsLineItem>

MATLAB plot画线的颜色设定

plot中画线的颜色通常是八种: 标记符    颜色r          红g          绿b          蓝c          蓝绿m          紫红y          黄k          黑w          白 但是线的颜色是由红绿蓝(RGB)三原色组成的,通过设定三原色的权重可以改变线的颜色,命令如下(x为横坐标,y为纵坐标): color的域值为0—1 plot(x,y,'Color',[1 0 0]);代表红色 plot(x,y,'Color',[0