我正在寻找一种在使用QPainter绘制QLine元素时应用水平不透明度渐变的方法。简而言之,我希望能够使线条不透明度从正在绘制的线条中心越远。我想要实现的效果对应于许多图像编辑工具共同描述为画笔的硬度。
这是一个示例图像,用于将使用硬刷的线与柔软的刷线进行比较:
这是绘制常规QLine的最小示例:
QPainter p;
p.setPen(QPen(Qt::black, 12, Qt::SolidLine, Qt::RoundCap));
p.drawLine(QPointF(0,0), QPointF(1024,1024));
我如何以及在何处配置我描述的线硬度?在绘制QLine元素时,是否存在类似于衰落属性的东西?
在文档中,我只能找到如何在设定点之间应用线性渐变的示例,这不是我想要的。
答案 0 :(得分:2)
这不是...
with open('yourFile', 'r') as numbersFile:
nums = numbers.readlines()
for num in nums:
url = "http://www.example.com/No_" + num + "/.../"
# do what you want to do with the url...
绘画,那是画笔绘画,就像说photoshop一样,Qt并不真正支持开箱即用的这种功能。
但它很容易实现,你需要一个画笔模板pixmap,你只需在给定步骤沿着一条线绘制目标绘图设备上的像素图。
线性插值部分已经回答here。
建议画笔模板为8位灰度QPen
,然后通过将灰度值用作所选纯色的alpha值,可以轻松获得彩色版本。 QImage
是首选,因为它提供单独的像素访问。这允许除了硬和软之外还有任何类型的刷子,包括某些艺术刷子。
当然,如果您只需要一个软刷,您可以使用Qt现有的渐变直接以所需的颜色生成,并跳过模板着色部分。