找回密码
 立即注册
收起左侧

图形视图框架绘图问题

3
回复
7591
查看
[复制链接]
累计签到:13 天
连续签到:1 天
来源: 2013-8-8 15:01:07 显示全部楼层 |阅读模式
10Qter豆
我创建工程,主窗口是:QMainWindow

    mdiArea = new QMdiArea;
    mdiArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
    mdiArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
    setCentralWidget(mdiArea);

    scene = new LADScene();
    scene->setSceneRect(QRectF(0, 0, 1300, 5000));

    view = new LADView;
    view->setScene(scene);

    mdiArea->addSubWindow(view);

在工具条上创建一个按钮,当点击按钮,在scene中添加图元。出现以下问题:
1. 程序启动后,界面显示的是scene 中间,此时点击按钮,并不执行添加图元操作,此时将scene 的滚动条移至最上端,出现图元,并且QGraphicsItem的paint函数执行多次。观察发现,只要拉动滚动条显示图元就会执行QGraphicsItem的paint函数 ;为什么在没有显示顶端时不会触发槽函数?显示图元的位置时才会触发槽函数,并且每次都会触发?

2. 最小化窗口到任务栏,再显示窗口,程序会进入QGraphicsItem的paint函数,只进入这个函数。为什么?

3.单步调试,出现Internal error: pc 0x0 in read in psymtab, but not in symtab这样的错误信息,这个我调试自带的例程也有。


重点是前面两个问题,第三个我调试自带的例程也出现。哪位大牛指教一下。必要时可以提供代码。我用的QT5.1

最佳答案

查看完整内容

建议你看看《入门》的图形视图框架一章,先要搞清楚场景、图形项的原点,如果没有书,也可以查下这里:http://www.qter.org/forum.php?mod=viewthread&tid=125。 另外,窗口的隐藏显示都会进行重绘的。
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2013-8-8 15:01:08 显示全部楼层
建议你看看《入门》的图形视图框架一章,先要搞清楚场景、图形项的原点,如果没有书,也可以查下这里:http://www.qter.org/forum.php?mod=viewthread&tid=125
另外,窗口的隐藏显示都会进行重绘的。
回复

使用道具 举报

累计签到:13 天
连续签到:1 天
2013-8-9 11:51:13 显示全部楼层
yafeilinux 发表于 2013-8-8 16:28
建议你看看《入门》的图形视图框架一章,先要搞清楚场景、图形项的原点,如果没有书,也可以查下这里:http ...

还有一个问题:我点击按钮绘制图元,图元的坐标不在可视区域,结果不执行paint函数,当我拉动滚动条使绘图的坐标显示在绘图区域时,只是才执行了图元的paint函数,我想问:是不是只有在可视区域才会执行paint函数进行绘制?
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2013-8-9 14:59:28 显示全部楼层
syzobelix 发表于 2013-8-9 11:51
还有一个问题:我点击按钮绘制图元,图元的坐标不在可视区域,结果不执行paint函数,当我拉动滚动条使绘 ...

嗯。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了