那么应该如何修改 paintEvent 呢(和修改 paintGL 的区别)?我发现主要有下面几点:
- paintEvent 里面必须创建 QPainter 对象,不论画或者不画 2D 的东西,否则结果不对;我曾很天真的认为如果我不画 2D 的,就没必要创建 QPainter,这是完全不对的。
- paintEvent 里面需要完全依照先 glPushMatrix 最后 glPopMatrix 的逻辑来写,还需要手工设置 viewport;之后才能利用 QPainter 画图;如果直接写 paintGL 是可以偷懒的;
- 我原先因为偷懒所以 selection 部分就没有弄完整的画图动作,这在 paintEvent 实现里面是不行的,必须全部实现 OK;
No comments:
Post a Comment