我有一个包含QGLWidgetQStatusBar的窗口。我在timerEvent调用中计算fps,但我不知道在每帧上更新状态栏的“正确”方法。 fpsGLWidget的成员变量:

void GLWidget::timerEvent(QTimerEvent* event){

    updateGL();

    // Calculate FPS.
    prevTime = currentTime;
    currentTime = runTime.elapsed();

    int timeDiff = currentTime - prevTime;

    fps = 1000.0/timeDiff;

    // Update statusbar with fps here.

}

谢谢!

最佳答案

您可能想要的是在GLWidget上连接到signal的自定义slot。在同时包含GLWidget和状态栏的小部件上建立连接:

connect(&glWidgetInstance, SIGNAL(updateFPSSignal(int)), this, SLOT(updateFPSSlot(int)));

slot函数看起来像这样:
void updateFPSSlot(int fps) {
    // Update status bar
}

请注意,如果状态栏是自定义类,则可以在该类中创建插槽功能,然后直接连接到它。无论哪种方式,都应在包含GLWidget和状态栏实例的类中进行连接。

关于c++ - 从glwidget更新Qt4状态栏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3117654/

10-11 19:11