我有一个包含QGLWidget
和QStatusBar
的窗口。我在timerEvent
调用中计算fps,但我不知道在每帧上更新状态栏的“正确”方法。 fps
是GLWidget
的成员变量:
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/