Я использую sh для обновления виджета индикатора выполнения из функции QtConcurrent и застрял на следующей проблеме:
a) Если я объявлю эту функцию как:
void myRunFunction(QString str)
, тогда Я успешно запрограммировал его как параллельный:
QFuture<void> t1 = QtConcurrent::run(myRunFunction, QString("A"));
НО я не могу получить доступ к любому виджету Qt моего GUI изнутри функции («невозможно разрешить идентификатор 'widget'»).
b) Если я объявлю эту функцию как:
void mainForm::myRunFunction(QString str)
, то я успешно получу доступ к своим виджетам внутри нее, НО больше не смогу программировать ее как одновременное получение ошибки компилятора:
error: invalid use of non-static member function ‘void mainForm::myRunFunction(QString)’
at строка:
QFuture<void> t1 = QtConcurrent::run(myRunFunction, QString("A"));
Как решить проблему? Заранее большое спасибо, Марко