刻度朝内显示使用指南¶
QwtPlot::TickDirection 是 Qwt 提供的刻度方向控制功能,允许将坐标轴刻度线显示在绘图区域内部,而非默认的外部显示。这在需要紧凑布局或特殊视觉效果的场景中非常有用。
主要功能特性¶
特性
- ✅ 刻度方向控制:支持刻度朝外(默认)和刻度朝内两种显示方式
- ✅ 独立轴控制:每个坐标轴(XBottom、XTop、YLeft、YRight)可独立设置
- ✅ 样式同步:朝内刻度与朝外刻度共享相同的样式设置(长度、颜色、线宽)
- ✅ 动态切换:可随时切换刻度方向,无需重新设置刻度样式
基本概念¶
刻度方向说明¶
传统绘图中,坐标轴刻度线从轴线向外延伸(朝外显示)。刻度朝内功能则将刻度线从画布边缘向内延伸,实现不同的视觉效果。
1 2 3 4 5 6 7 8 9 10 11 12 | |
TickDirection 枚举¶
| 枚举值 | 说明 |
|---|---|
QwtPlot::TickOutside |
刻度朝外(默认行为) |
QwtPlot::TickInside |
刻度朝内,从画布边缘向内延伸 |
使用方法¶
刻度朝内显示的例子位于:examples/2D/ticks_inside,例子截图如下:

1. 基本使用¶
设置单个坐标轴的刻度方向:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
2. 查询当前设置¶
获取坐标轴当前的刻度方向:
1 2 3 4 5 6 7 8 | |
3. 恢复默认设置¶
将刻度方向恢复为默认的朝外显示:
1 2 3 4 5 6 | |
4. 批量设置所有轴¶
同时设置多个坐标轴的刻度方向:
1 2 3 4 5 6 7 | |
核心方法¶
| 方法 | 参数 | 说明 |
|---|---|---|
setAxisTickDirection(axisId, direction) |
QwtAxisId, TickDirection | 设置指定轴的刻度方向 |
axisTickDirection(axisId) |
QwtAxisId | 获取指定轴的刻度方向 |
注意事项¶
样式继承
朝内刻度线自动继承朝外刻度的样式设置,包括:
- 刻度长度(通过 QwtScaleDraw::setTickLength() 设置)
- 线宽(通过 QwtScaleDraw::setPenWidthF() 设置)
- 颜色(通过 QwtScaleWidget::setScaleColor() 设置)
刷新时机
调用 setAxisTickDirection() 后会自动触发 autoRefresh(),在 autoReplot 开启时会自动刷新。如需立即刷新,可调用 replot()。
配合寄生轴使用
刻度朝内功能可与寄生轴(Parasite Plot)配合使用,每个寄生绘图可独立设置刻度方向。
与 QwtPlotScaleItem 的区别¶
| 特性 | TickDirection | QwtPlotScaleItem |
|---|---|---|
| 目的 | 控制主轴刻度方向 | 在画布内添加额外的坐标轴 |
| 刻度样式 | 继承主轴样式 | 可独立设置样式 |
| 显示位置 | 替换/改变主轴刻度 | 作为独立图层叠加 |
| 适用场景 | 需要紧凑布局或特殊效果 | 需要在画布内显示参考刻度 |
示例代码
完整示例位于:examples/2D/ticks_inside/
该示例展示了:
- 四个坐标轴独立控制
- 实时切换刻度方向
- 批量设置功能