Я пытаюсь узнать о потоковой обработке и основах C++ и QT. У меня есть метод кнопки MainWindow, которые по существу запустить поток, и хранить значение Ui текста поле со списком:QT C++ - Использование класса MainWindow QString в классе потоков
void MainWindow::on_Request_Raw_Button_clicked(bool checked)
{
if(checked)
{
// Store the current request into var.
curr_request = ui->comboBox_2->currentText();
qDebug() << curr_request << " started.\n";
mThread->start();
}
else
{
qDebug() << "Stopped.\n";
mThread->Stop = true;
}
}
И в нить разговора, когда он работает, я хочу использовать элемент данных в MainWindow, в частности, curr_request.
test_thread::test_thread(QObject *parent) : QThread(parent)
{
}
void test_thread::run()
{
this->Stop = false;
QMutex mutex;
while(true)
{
qDebug() << "I started.\n";
if(this->Stop) {
break;
mutex.unlock();
}
/* Do stuff here */
qDebug() << "Test: " << curr_request;
QString temp = curr_request;
mutex.unlock();
emit temp;
this->usleep(900000);
}
}
В моей mainwindow.h
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
test_thread *mThread;
QString curr_request = "";
Мой поток включает в себя файл mainwindow.h. Я получаю сообщение об ошибке: Недопустимое использование нестатического элемента данных 'curr_request'.
И как это связано с C? Не спам-теги! – Olaf
* Я пытаюсь узнать о потоковом * - [этой статье] (https://mayaposch.wordpress.com/2011/11/01/how-to-really-truly-use-qthreads-the-full-explanation /) - отличное место для начала. – TheDarkKnight