带有 QPainter 的非优雅碎椭圆
Non-elegant chipped ellipses with QPainter
我在目标周围画一个椭圆。但是,省略号没有连接和优雅。我所说的优雅是指它们不光滑。这是图像周围的椭圆的样子
请注意,圆不光滑并且粗糙,我想使其成为光滑的圆/椭圆。关于我该怎么做的任何建议?这就是我目前做省略号的方式。
QPainter painter(target);
QPen pen;
pen.setColor(Qt::red);
pen.setWidth(4);
pen.setStyle( Qt::SolidLine);
pen.setCapStyle(Qt::SquareCap);
pen.setJoinStyle(Qt::BevelJoin);
painter.setPen(pen);
QRegion r(QRect(0, 0, 50, 50), QRegion::Ellipse);
painter.setClipRegion(r);
painter.drawPixmap(0, 0, source);
painter.drawEllipse(QRect(1, 1, 49, 49));
您需要启用抗锯齿:
painter.setRenderHint(QPainter::Antialiasing);
添加对
painter.setRenderHint(QPainter::Antialiasing)
在绘制之前。
另请注意,基于区域的剪裁可能不会抗锯齿,因此您最好只绘制您感兴趣的部分(例如,通过绘制带有纹理的 QBrush 的椭圆)。
相关文章:
- Cpp-Tuple使用带有变量的get
- 当在带有Eigen的C++中使用GDB时,我如何才能看到更多的大矩阵
- C++中带有List类的迭代器Segfault
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- 在C应用程序中运行C++(带有STL)函数
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- C++使用数组作为多维数组,尽管将其初始化为带有指针的 1D
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 发送一个带有libcurl C++问题的帖子请求:s
- 当使用带有VS2019或VSCode的虚幻引擎4.24.2时,我如何修复这些错误的Intellisense错误
- 带有指定长度字符* 参数的 std::regex_search 在 VS2017 中不起作用?
- 在C++中将类(带有Vector成员)保存为二进制文件
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- 建议在运行时将带有类实例的列表从c++导入qml
- 带有 -stdlib=libc++ 的 clang++ 9.0.1 找不到<optional>
- 带有继承的C++工厂
- 带有Protobuf序列化的C++Hazelcast:字符串不是UTF-8格式的
- 在std::vector上存储带有模板的类实例
- 带有 QPainter 的非优雅碎椭圆