首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用QPainter绘制焦点图标

QPainter是Qt框架中的一个绘图类,用于在窗口或其他绘图设备上绘制各种图形元素。使用QPainter绘制焦点图标的步骤如下:

  1. 创建一个继承自QWidget或QGraphicsItem的自定义类,用于绘制焦点图标的区域。
  2. 在自定义类的paintEvent函数中,创建一个QPainter对象,并将其绑定到绘图设备上。
  3. 使用QPainter的绘图函数,如drawEllipse、drawRect等,绘制焦点图标的形状和样式。
  4. 根据需要,可以使用QPainter的其他函数设置图标的颜色、边框、填充等属性。
  5. 结束绘制后,释放QPainter对象。

以下是一个示例代码,演示如何使用QPainter绘制一个简单的焦点图标:

代码语言:cpp
复制
#include <QtWidgets>

class FocusIconWidget : public QWidget {
public:
    explicit FocusIconWidget(QWidget *parent = nullptr) : QWidget(parent) {}

protected:
    void paintEvent(QPaintEvent *event) override {
        Q_UNUSED(event);

        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing, true);

        // 绘制圆形焦点图标
        painter.setPen(Qt::NoPen);
        painter.setBrush(Qt::red);
        painter.drawEllipse(rect().center(), 50, 50);

        // 绘制内部的白色圆形
        painter.setBrush(Qt::white);
        painter.drawEllipse(rect().center(), 30, 30);
    }
};

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    FocusIconWidget widget;
    widget.resize(200, 200);
    widget.show();

    return app.exec();
}

在上述示例中,我们创建了一个自定义的QWidget子类FocusIconWidget,并重写了其paintEvent函数。在paintEvent函数中,我们使用QPainter绘制了一个红色的圆形焦点图标,以及一个白色的内部圆形。

这只是一个简单的示例,你可以根据实际需求使用QPainter绘制更复杂的焦点图标,例如添加阴影效果、渐变填充等。关于QPainter的更多绘图函数和属性设置,请参考Qt官方文档:QPainter Class

请注意,以上示例中没有提及腾讯云的相关产品,因为QPainter是Qt框架自带的绘图类,与云计算无直接关系。如果你需要在腾讯云上部署和运行应用程序,可以考虑使用腾讯云的云服务器、容器服务、函数计算等产品来支持你的应用。具体产品选择和介绍,请参考腾讯云官方网站:腾讯云

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

字体图标绘制使用技巧

从事前端的朋友应该对“字体图标”这个词汇不陌生,为了适应越来越挑剔的屏幕,网页图标和简单图案使用 .png 来搭建已经基本上被淘汰了。...取而代之的是使用 css3 和 svg 来绘制,而对于网页小图标,我们更希望在整个系统的前端架构中将它们做成字体库统一管理。如下图: ?...我是主后端的程序员,很早以前就在项目中使用过字体图标,但是之前用于制作图标库的 svg 都是美工帮我画好,所以一直没有深究其中的原理,直到近期不得不自己制作才对其好好研究了一下。...这里先跟大家推荐两个管理字体图标库的工具网站: icomoon.io www.iconfont.cn/plus icomoon 大名鼎鼎,不过个人认为 iconfont 阿里巴巴的矢量图标库更符合国人的使用习惯...下面我从svg绘制和代码实现两方面将初次制作字体图标遇到的坎和大家分享一下,愿后来者不要入坑。

1.4K100

学生问:如何绘制这种圆润图标底色

前言:学生们在学习ps软件的过程中非常的认真与努力,所以对于软件的使用可以说已经很熟练了,可是为什么当我们给学生安排一些原创设计需求的时候,学生却有种无从下手的感觉呢,究其原因就是学生在创新制作这方面的技巧和方法学得不够...有一个学生问我,类似下面的图标底色如何能画得规范: ? 相信很多同学都有自己的画法,我把我的想法及做法分享给大家 1、绘制一个正方形和一个正圆,它们的宽高是一样的,如下图对齐 ?...上述操作步骤的发布,旨在帮助大家对上述图标绘制方法及技巧有所了解。因为课余时间有限,文字内容及语言组织没花太多时间,说是教程有些牵强,算一个案例分享吧。希望大家看过我的案例分享后能有所收获。

771140
  • Qt音视频开发23-通用视频控件

    做了好多种视频监控内核,有ffmpeg内核的,有vlc内核的,有mpv内核的,还有海康sdk内核的,为了做成通用的功能,不同内核很方便的切换,比如pro直接改一个DEFINE的变量名,所以需要将各种内核的使用方法做成一样的接口...工具栏可以放置多个小图标和关闭图标。 左侧右侧可拖动拉伸,并自动记忆宽高位置,重启后恢复。...右下角音量条控件,失去焦点自动隐藏,音量条带静音图标。 集成百度在线地图和离线地图,可以添加设备对应位置,自动生成地图,支持缩放和添加覆盖物等。 视频拖动到通道窗体外自动删除视频。...默认采用opengl绘制视频,超低的CPU资源占用,支持yuyv和nv12两种格式绘制,很牛逼。 高度可定制化,用户可以很方便的在此基础上衍生自己的功能,支持linux和mac系统。...painter(this); painter.setRenderHints(QPainter::Antialiasing); //绘制边框 drawBorder(&painter

    1.3K71

    Qt编写自定义控件51-可输入仪表盘

    //绘制当前进度 drawProgress(&painter); //绘制中心圆 drawCenterCircle(&painter); //绘制单位...qwt的控件类环环相扣,高度耦合,想要使用其中一个控件,必须包含所有的代码。...全部纯Qt编写,QWidget+QPainter绘制,支持Qt4.6到Qt5.12的任何Qt版本,支持mingw、msvc、gcc等编译器,支持任意操作系统比如windows+linux+mac+嵌入式...每个控件都有一个对应的单独的包含该控件源码的DEMO,方便参考使用。同时还提供一个所有控件使用的集成的DEMO。 每个控件的源代码都有详细中文注释,都按照统一设计规范编写,方便学习自定义控件的编写。...自定义控件插件开放动态库使用(永久免费),无任何后门和限制,请放心使用。 目前已提供26个版本的dll,其中包括了qt5.12.3 msvc2017 32+64 mingw 32+64 的。

    1.3K20

    如何使用 Excel 绘制甘特图?

    这时候我们就可以使用Excel来做项目管理里常用的甘特图。 2.什么是甘特图呢? 甘特图是以提出者甘特先生的名字命名的。横轴表示时间,纵轴表示项目里各个任务。...这部分我会通过一个实战案例,教会你如何使用Excel来绘制甘特图,从而来管理项目,并自动生成项目进度报表。 我们可以根据项目需求用Excel做下面的项目管理文档。...整个文档做起来难度并不是很大,做完之后能够多次重复使用,大大的提升了使用的愉悦度和效率。 下面我教你如何用Excel做出这样的项目管理文档。 4.如何用Excel做甘特图? 1)如何制作项目计划表?...2)甘特图如何制作?...5.模板下载 前面我们学习了面对复杂问题,如何使用Excel制作甘特图和自动报表来推进项目进度。 我希望你也能亲自跟着前面的步骤实践一遍。 怎样用 Excel 做数据分析?​

    4K30

    Qt编写自定义控件10-云台仪表盘

    之前做过很多自定义控件,大部分都采用了qpainter的形式绘制,有个好处就是自适应任意分辨率,所以思考着这个云台控制仪表盘也采用纯painter绘制的形式,据说纯painter绘制还可以轻松移植到qml...中,这又坚定了我用qpainter绘制的决心。...全部纯Qt编写,QWidget+QPainter绘制,支持Qt4.6到Qt5.12的任何Qt版本,支持mingw、msvc、gcc等编译器,支持任意操作系统比如windows+linux+mac+嵌入式...每个控件都有一个对应的单独的包含该控件源码的DEMO,方便参考使用。同时还提供一个所有控件使用的集成的DEMO。 每个控件的源代码都有详细中文注释,都按照统一设计规范编写,方便学习自定义控件的编写。...自定义控件插件开放动态库dll使用(永久免费),无任何后门和限制,请放心使用。 目前已提供26个版本的dll,其中包括了qt5.12.3 msvc2017 32+64 mingw 32+64 的。

    1.6K20

    Qt编写自定义控件9-导航按钮控件

    这个无敌大法工具,没有什么不能绘制的。...); //绘制背景 drawBg(&painter); //绘制文字 drawText(&painter); //绘制图标 drawIcon(&painter...全部纯Qt编写,QWidget+QPainter绘制,支持Qt4.6到Qt5.12的任何Qt版本,支持mingw、msvc、gcc等编译器,支持任意操作系统比如windows+linux+mac+嵌入式...每个控件都有一个对应的单独的包含该控件源码的DEMO,方便参考使用。同时还提供一个所有控件使用的集成的DEMO。 每个控件的源代码都有详细中文注释,都按照统一设计规范编写,方便学习自定义控件的编写。...自定义控件插件开放动态库dll使用(永久免费),无任何后门和限制,请放心使用。 目前已提供26个版本的dll,其中包括了qt5.12.3 msvc2017 32+64 mingw 32+64 的。

    2.5K30

    32.QT-制作最强电压电阻表盘,可以自定义颜色,图标,文字标签(也可以用来当其它表盘)

    上图的所有颜色(包括滑动的渐变/单一颜色,以及字体颜色)都可以自定义,包括图标也可以(上面的电阻图标,网上没找到好看的,所以很丑~) 整体效果图如下所示: ?...3.然后接下来开始画刻度圆,画了它后,才能开始画刻度和划过的颜色等 void Dial::drawScalebkColor(QPainter &paint) //绘制刻度圆 { paint.save...(QPainter &paint) //绘制刻度值 { /*绘制文字刻度*/ paint.save(); paint.setPen(ScaleColor); QString...6.然后接下来开始画指针 void Dial::drawPointColor(QPainter &paint) //绘制指针 { qreal PointTop;...7.然后继续画中心圆 void Dial::drawCenterColor(QPainter &paint) //绘制中心圆 { paint.save(); QRadialGradient

    1.4K30

    Qt 之图形(QPainter 的基本绘图)「建议收藏」

    简述 Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice 和 QPaintEngine 这三个类。...例如,绘制矩形图形时,为了将对象绘制到 QWidget、QGLPixelBuffer、QImage、QPixmap、QPicture 等多种界面中间,必须使用 QPaintDevice。...QPainter 可以在继承自 QPaintDevice 类的任何对象上进行绘制操作。QPainter 也可以与 QPrinter 一起使用来打印文件和创建 PDF 文档。...QPainter 一般在部件的绘图事件 paintEvent() 中进行绘制,首先创建 QPainter 对象,然后进行图形的绘制,最后记得销毁 QPainter 对象。...); // 反走样 painter.setRenderHint(QPainter::Antialiasing, true); // 绘制图标 painter.drawPixmap

    5K40

    Qt编写自定义控件44-天气仪表盘

    一、前言 天气仪表盘控件是所有控件中唯一一个使用了svg矢量图的控件,各种天气图标采用的矢量图,颜色变换采用动态载入svg的内容更改生成的,其实也可以采用图形字体来做,本次控件为了熟悉下svg在Qt中的使用...,才采用的svg来绘制。...天气一般要表示多个内容,温度+湿度+天气等,这就需要合理的布局多种元素的位置才能更加美观一些,这里参照的是网上一些通用的做法,比如最外层圆环是温度,中间圆环湿度,然后天气图标贴在中间圆环里边的左上角,同时再绘制温度湿度的值...全部纯Qt编写,QWidget+QPainter绘制,支持Qt4.6到Qt5.12的任何Qt版本,支持mingw、msvc、gcc等编译器,支持任意操作系统比如windows+linux+mac+嵌入式...每个控件都有一个对应的单独的包含该控件源码的DEMO,方便参考使用。同时还提供一个所有控件使用的集成的DEMO。 每个控件的源代码都有详细中文注释,都按照统一设计规范编写,方便学习自定义控件的编写。

    1.5K20

    QPushButton 基本使用

    通常与其他单选按钮一起使用,组成单选按钮组。 可以设置文本、图标等属性。 提供了信号和槽机制,可以响应按钮的状态变化事件。 3、QCheckBox(复选框): 用于选择多个选项中的一个或多个选项。...运行后效果如下: 2、设置按钮的文本、图标和样式: 我们可以使用 setText() 方法为按钮设置文本,使用 setIcon() 方法设置按钮的图标。...该方法在按钮需要重新绘制时被调用。在方法体内,您可以使用 QPainter 类来绘制按钮的外观,例如绘制背景、文本和图标。...以下是一个示例: def paintEvent(self, event): painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing...) # 自定义绘制代码 # 绘制按钮的背景、文本和图标 painter.end() 在上述代码中,我们创建了一个 QPainter 实例,并使用其方法来绘制按钮的外观。

    51940

    如何从icomoon引入及使用字体图标

    如何引入字体图标?...从网上下载字体图标: 进入该网站:https://icomoon.io/ Snipaste_2021-10-08_20-03-27.png 点进去之后,在其中选择你想要的图标,如果觉得不够用的话,可以点击左下角选择生成更多的图标...24.png 下载好之后,需要注意了,注意如何操作来在html文件中引入字体图标: (假如你想引入图标的html文件叫k) 把下载包中的fonts文件夹放入k所在的根目录中 把下载包中的style.css...而且你还可以修改图标的颜色、大小等属性,如图~ Snipaste_2021-10-08_20-23-06.png 如何追加字体图标?...,选择好之后,还是按照之前的步骤,下载完成就可以了,这样,你就又拥有一个包括之前以及现在追加的所有字体图标库了~

    99920

    如何使用Excel绘制图表?

    通过使用Excel进行数据分析,我们已经学会了从原始数据中得到分下面的分析结果:统计出每个城市的数据分析师招聘数量。 那么,问题就来了。有了数据分析结果以后,如何展示成图表呢?...我们按下面图片中标出的顺序来看下,在Excel中如何绘制图表。 第1步,选住要绘制图形的数据,也就是数据透视表里的数据。...下面图片我们看下如何操作。 第1步,我们在图表上鼠标右键,点击“剪切” 第2步,我们在excel工作表上点击“加号”,增加一个新的工作表,并命名为:图表-城市需求。...使用颜色时,一定要克制住为了丰富多彩而使用颜色的冲动。如果使用了太多种颜色,甚至超过了彩虹的颜色种类,就失去了颜色的价值,因为没有什么是突出的。...所以避免使用居中对齐的文字,我喜欢将文字(标题,坐标轴标签等)按左上角对齐。这意味着用户会先看到有关如何阅读图表的细节,然后再看到数据本身。 在图表下面的单元格可以配上数据来源,辅助阅读者理解。

    32320

    26.QT-模型视图之自定义委托

    QStyleOptionViewItem & option, QModelIndex & index ) ; //创建编辑器,并返回该编辑器, option包含了该数据项的具体信息(比如:数据项窗口大小,字体格式,对齐方式,图标位于字体的哪个位置等...setItemDelegate(QAbstractItemDelegate * delegate )成员函数设置我们自定义的委托类对象即可 深入自定义委托类 之前我们写的自定义委托,每次都需要双击某个数据项,才能弹出编辑器 那如何让委托一直呈现在视图显示上呢...步骤如下: 重写委托类的paint成员函数 在paint()中,通过QApplication::style()->drawControl()来自定义数据显示方式,比如绘制按钮 重写委托类的editorEvent...State_Sunken //表示该组件样式是:鼠标按压下的组件样子   QStyle::State_HasEditFocus //表示该组件是否有编辑焦点...// painter:谁来绘画 // widget = 0:如果该widget为0,则表示使用QT自带的风格 示例-自定义一个QCostomizedDelegate委托类 效果如下 ?

    2.1K20
    领券