Qt绘制图形时自定义点划线间隔的办法--setDashPattern

尽管Qt::PenStyle给出了一些现成的点划线,但是某些场合下并不能满足我们的需要。此时可以使用QPen::setDashPattern来自定义点划线间隔。

cpp 复制代码
void QPen::setDashPattern(const QVector<qreal> &pattern)

根据Qt官方文档所说:

The pattern must be specified as an even number of positive entries where the entries 1, 3, 5... are the dashes and 2, 4, 6... are the spaces

pattern必须包含偶数个元素。第1,3,5...元素(从1计数,不从0计数)代表线长度,第2,4,6...代表空白长度。划线时,QPen按照上面的周期重复绘制。

The dash pattern is specified in units of the pens width; e.g. a dash of length 5 in width 10 is 50 pixels long

Pattern中元素的单位不是像素,而是QPen::width()的返回值。比如说,QPen的width是10,而某元素定义为5,那么实际代表的像素数就是5x10=50

相关推荐
秋田君1 天前
QT_JSON文件操作
开发语言·qt·json
大白同学4211 天前
初识Qt——信号和槽
开发语言·qt
秋田君1 天前
QT_INI文件操作
开发语言·qt
≮傷£≯√1 天前
FFmpeg + qt 音频播放
qt·ffmpeg·音视频
youqingyike1 天前
【无标题】
前端·qt
程序员老陆1 天前
Qt::WidgetAttribute 常用属性详解
开发语言·qt
程序员老陆2 天前
Qt的QThread::usleep和FFmpeg的libavutil模块的av_usleep哪个精度高一些?
开发语言·qt·ffmpeg·音视频
Quz2 天前
QML TextArea 入门(二):富文本与换行模式
qt
大白同学4212 天前
初识Qt——创建第一个Qt项目
开发语言·qt
秋田君2 天前
QT_绘图原理双缓冲机制
服务器·数据库·qt