@Apexis

Как обновить текст label из статического метода в QT?

Нужно обновлять UI в отдельном потоке (pthreads). Для этого нужно передать коллбек функцию (метод класса MainWindow) в pthread_create. Я не могу передать метод нестатического класса как коллбек. Можно сделать метод статическим, но тогда не знаю как из него обратиться к нестатическому ui. Задача вроде простая, обновить текст в label, но не могу понять как засунуть коллбек и обновить интерфейс из одной функции.

MainWindow::MainWindow(QWidget *parent) :  
    QMainWindow(parent),  
    ui(new Ui::MainWindow)  
{  
    ui->setupUi(this);  
}


коллбек
void *MainWindow::status(void *a) {
   ui->start->setEnabled(false);
    while(true) {
        ui->progressBar->setValue(progress); // из статического метода до ui не достучаться
        ui->done->setText(QString::number(done));
        ui->fail->setText(QString::number(fail));

        Sleep(500);
    }
}
  • Вопрос задан
  • 281 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Griglapidus
C++/Qt
В Qt это надо делать через сигналы и слоты. Тогда это можно будет делать из любого потока.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы