Я пытаюсь обернуть голову вокруг потоковых и графических приложений, чтобы начать их создавать. Я скачал Qt SDK, но немного растерялся.
Чтобы я мог понять, как это работает, я хочу создать приложение с графическим интерфейсом, которое состоит из текстового поля и двух кнопок. Каждая кнопка запускает новый поток (таким образом, 3 могут выполняться одновременно: основной поток графического интерфейса и 2, инициируемые с помощью кнопок), и каждая из них будет иметь доступ к информации в текстовом поле. Как бы я настроить это приложение?
Посмотрите на СИГНАЛ и СЛОТЫ, это основа Qt.
После того, как вы это сделаете, взгляните на QThread и QThreadPool.
Также я рекомендую эти удивительные уроки: http://www.voidrealms.com/tutorials.aspx?filter=qt
Вы должны подключить слот к сигналу щелчка QPushButton и запустить новый поток из этого слота, как показано ниже.
QPushButton *button=new QPushButton();
connect(button,SIGNAL(clicked()),this,SLOT(startthread()));
И слот startthread будет запускать новый поток с рабочим классом
void MyClass::startthread()
{
QThread *thread=new QThread();
WorkerClass * worker=new WorkerClass();
worker->moveToThread(thread);
thread->start()
}
Где WorkerClass будет выполняться в отдельном потоке.