Russian Qt Forum
Март 28, 2024, 14:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3 4   Вниз
  Печать  
Автор Тема: операции в слотах тормозят GUI  (Прочитано 22245 раз)
megido
Гость
« Ответ #15 : Декабрь 12, 2016, 11:35 »

Так делать не нужно. Можно примерно так:

а в воркере будут доступны переменные из главного класса, ну в каком я его запустил?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #16 : Декабрь 12, 2016, 11:38 »

Передавай их в invokeMethod.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
megido
Гость
« Ответ #17 : Декабрь 12, 2016, 11:39 »

Передавай их в invokeMethod.
что это у тебя за qt такой?
не пойму как разделить это все и поместить в header

и что такое public Q_SLOTS?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #18 : Декабрь 12, 2016, 11:42 »

Уууууу. Читай доки по Кьюту. public slots тебе понятнее?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
megido
Гость
« Ответ #19 : Декабрь 12, 2016, 11:45 »

Уууууу. Читай доки по Кьюту. public slots тебе понятнее?
я в доках такого не видал. у тебя какой куте то?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #20 : Декабрь 12, 2016, 11:51 »

Любой, начиная с версии 4.0.0
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #21 : Декабрь 12, 2016, 11:52 »

http://doc.qt.io/qt-4.8/qobject.html#Q_SLOTS
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
megido
Гость
« Ответ #22 : Декабрь 12, 2016, 12:10 »


так а доступ к  переменным и функциям главного класса в этом объекте не получить? опять городить 55 слотов чтоли? =_=
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #23 : Декабрь 12, 2016, 12:20 »

Мне кажется, у тебя архитектурные проблемы. У тебя 55 членов класса?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
megido
Гость
« Ответ #24 : Декабрь 12, 2016, 12:31 »

Мне кажется, у тебя архитектурные проблемы. У тебя 55 членов класса?
ну не 55 конечно, но хватает.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #25 : Декабрь 12, 2016, 12:38 »

Без конкретных примеров ничего сказать не могу. Могу только посоветовать почитать литературу по проектированию. Допустим, Боба Мартина. Данные можно сгруппировать в структуры. Желательно разбить на классы, а не валить все в MainWindow. Прочитай про SOLID. В общем, подтяни свои знания по ООП.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
megido
Гость
« Ответ #26 : Декабрь 12, 2016, 13:18 »

Без конкретных примеров ничего сказать не могу. Могу только посоветовать почитать литературу по проектированию. Допустим, Боба Мартина. Данные можно сгруппировать в структуры. Желательно разбить на классы, а не валить все в MainWindow. Прочитай про SOLID. В общем, подтяни свои знания по ООП.
ну например у меня поток, в нем выполняется какое то действие после которого нужно что-то поменять в UI, в потоке ui недоступно ну и начинается:

void Class::SlotForSetTitle(QString val){/* ... */}
void Class::SlotForChangeStatus(QString val){/* ... */}
void Class::SlotForCheckButtonPlay(QString val){/* ... */}
void Class::SlotForCheckButtonStop(QString val){/* ... */}
void Class::SlotForClearSomething(QString val){/* ... */}

ну и так далее...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #27 : Декабрь 12, 2016, 13:38 »

Жесть. Пусть воркер возвращает структуру с данными, а в слоте данные достанешь и на основе их настроишь гуй.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
megido
Гость
« Ответ #28 : Декабрь 12, 2016, 13:41 »

Жесть. Пусть воркер возвращает структуру с данными, а в слоте данные достанешь и на основе их настроишь гуй.
ну я бы так сделал если бы все было в одном месте. а так там кусок, тут кусок...
Записан
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #29 : Декабрь 12, 2016, 14:39 »

а в воркере будут доступны переменные из главного класса, ну в каком я его запустил?

да, передай указатель и защити мутексом
Записан
Страниц: 1 [2] 3 4   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 23.