Обновление строки состояния Qt4 из glwidget - PullRequest
2 голосов
/ 25 июня 2010

У меня есть окно, содержащее QGLWidget и QStatusBar.Я вычисляю fps внутри timerEvent вызова, но я не знаю «правильного» способа обновления строки состояния в каждом кадре.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.

}

Спасибо!

1 Ответ

2 голосов
/ 25 июня 2010

Что вам, вероятно, нужно, это пользовательский signal на GLWidget, который вы подключаете к slot. Установите соединение в виджете, содержащем как GLWidget, так и строку состояния:

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

Функция слота будет выглядеть примерно так:

void updateFPSSlot(int fps) {
    // Update status bar
}

Обратите внимание, что если строка состояния является пользовательским классом, вы можете создать функцию слота в этом классе и напрямую подключиться к нему. В любом случае, соединение должно быть установлено внутри класса, который содержит экземпляры как для GLWidget, так и для строки состояния.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...