Russian Qt Forum

Qt => Общие вопросы => Тема начата: StatuS74 от Август 05, 2011, 12:23



Название: метод класса
Отправлено: StatuS74 от Август 05, 2011, 12:23
подскажите как метод класса отправить в отдельный поток ? хотел использовать QtConcurrent::run() но он больше 5 аргументов не кушает а у меня у метода 7 аргументов. что можите посоветовать ??


Название: Re: метод класса
Отправлено: Пантер от Август 05, 2011, 12:25
Если у метода 7 аргументов, то стоит пересмотреть архитектуру. Если не поможет, собрать аргументы в структуру и ее передавать.


Название: Re: метод класса
Отправлено: StatuS74 от Август 05, 2011, 13:04
а что в Qt структуры вызываются не так как в С++ ??
описал стуктуру типо
struct Mystruct
{
int a
int b
}

но не могу потом обратится так как в с++
Mystruct.a


Название: Re: метод класса
Отправлено: Пантер от Август 05, 2011, 13:07
facepalm.png

Код
C++ (Qt)
Mystruct my;
my.a = 0;
 
Так делается в с++.


Название: Re: метод класса
Отправлено: StatuS74 от Август 05, 2011, 13:51
а как описать в классе  структуру ? в смысле того что в программе сформировал структуру а как записать что бы он её воспринимал в целом как аргумент ?
Код:
test::full_test(data_test,file_name1,nms,ftHandle1,serial1);
data_test это структура. он говарит нужен аргумент перед запятой
ругается error: no matching function for call to 'test::full_test(MainWindow::data_test&, QString&, QString&, void*&, QString&)'


Название: Re: метод класса
Отправлено: Авварон от Август 05, 2011, 14:53
сигнатуру ф-ии дата тест в студию


Название: Re: метод класса
Отправлено: StatuS74 от Август 05, 2011, 15:02
структура не прокатила. буду  какой ещё есть способ запустить методов в отдельном потоке. штука в том что я 12 потоков должен создать одного метода с разными параметрами


Название: Re: метод класса
Отправлено: twp от Август 05, 2011, 15:09
Тогда лучше использовать не функцию а указатель на метод, который и выполняет всю работу. Тогда в QtConcurrent::run нужно будет передать ссылку на структуру и указатель на ее метод