【问题标题】:When is QGLWidget's paintGL called?QGLWidget 的paintGL 什么时候调用?
【发布时间】:2013-07-16 15:20:29
【问题描述】:

我能找到的只是“每当需要绘制小部件时”。

具体是什么时候?

【问题讨论】:

    标签: qt opengl rendering qglwidget


    【解决方案1】:

    当您在您的小部件(或update())上调用updateGL() 时,或者只是Qt 决定重绘您的小部件。 Qt 可能选择要求重绘的原因包括:

    • 您的小部件已调整大小
    • 您的小部件已隐藏并再次显示
    • 您的小部件已最小化然后恢复
    • 其他东西放在您的小部件前面,然后移开
    • 月亮在第三季度
    • 一只遥远的蝴蝶扇动了翅膀
    • ...

    简而言之,您几乎无法控制何时 Qt 要求重绘。一定要快速上色! :-)

    【讨论】:

    • 免费信息:paintGL() 在您致电 updateGL() 时甚至不会被称为“即时”。相反,Qt 会等待并稍后在适当的时候调用它,因此对updateGL() 的连续调用只会导致对paintGL() 的一次调用。
    • 谢谢!我不知道 update() 和 updateGL() 函数。这都是经验吗?
    • 你的意思是,如果这是 Qt 何时要求重绘的完整列表,除了用户生成的(即调用 update())?
    • 我只是想知道你从哪里得到你的信息,真的,因为我无法在网上找到任何关于它的信息。 :)
    • 文档和源代码。文档说:Each widget performs all painting operations from within its paintEvent() function. This is called whenever the widget needs to be redrawn, either as a result of some external change or when requested by the application.
    猜你喜欢
    • 2019-12-25
    • 2014-03-27
    • 2010-10-18
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多