Расскажите пожалуйста об архитектуре следующего приложения. Есть главный поток в котором выводится информация в GUI, в паралельном потоке запускается длинный и длительный процесс - парсинг код сайта. Результат парсинга нам необходимо выводить в табличку которая принадлежит потоку в котором крутится GUI(основной поток). Из паралельного потока прямого доступа к этой табличке для записи в ее ячейку текста - нет, т.к. виджет таблички работает в другом потоке(основном), а данные необходимые для отображения в этот виджет(в табличку) формируются во втором - дополнительном потоке. Вот запутался в впоросе того как перекидывать найденные в процессе парсинга данные в основной поток для отображения. Честно - запутался очень сильно с многопоточным программированием.
Скажите, а если при работающем потоке, нажать еще раз на кнопку? Будет создан такой же поток не влияющий на работу первого? Если нет, как узнать какие потоки в работе? Их идентификаторы. Спасибо.
Классно. А может в следующем видео с подключением ProgressBar покажете реализацию копирования? И ещё. Не думаете ли переходить на новый синтаксис подключения сигналов и слотов с использованием указателей?
А если требуется копировать одновременно несколько файлов? Имеет ли смысл выделять несколько потоков? Классы рабочих объектов создавать динамически и QThread, тоже
Как можно передать в уже работающий поток какую то команду? К примеру в данном видео команду паузы/отмены копирования? Или, к примеру, в отдельном потоке выполняется функция, эта функция делает i++ после чего выводит i на экран. Как нибудь можно обнулить i без перезапуска всей функции?
Метод "через жопу": вызвать метод класса, живущего в отдельном потоке, который установит флаг паузы/отмены, а в главном цикле класса проверять флаги и приостанавливать работу (как - хз), либо делать return из главного цикла, завершая таким образом поток. Обнулить i проще-простого: вызвать метод, обнуляющий i.
чуть не забыл поставить лайк!!!!
Расскажите пожалуйста об архитектуре следующего приложения.
Есть главный поток в котором выводится информация в GUI, в паралельном потоке запускается длинный и длительный процесс - парсинг код сайта. Результат парсинга нам необходимо выводить в табличку которая принадлежит потоку в котором крутится GUI(основной поток). Из паралельного потока прямого доступа к этой табличке для записи в ее ячейку текста - нет, т.к. виджет таблички работает в другом потоке(основном), а данные необходимые для отображения в этот виджет(в табличку) формируются во втором - дополнительном потоке. Вот запутался в впоросе того как перекидывать найденные в процессе парсинга данные в основной поток для отображения. Честно - запутался очень сильно с многопоточным программированием.
Скажите, а если при работающем потоке, нажать еще раз на кнопку? Будет создан такой же поток не влияющий на работу первого? Если нет, как узнать какие потоки в работе? Их идентификаторы. Спасибо.
Классно.
А может в следующем видео с подключением ProgressBar покажете реализацию копирования?
И ещё. Не думаете ли переходить на новый синтаксис подключения сигналов и слотов с использованием указателей?
А если требуется копировать одновременно несколько файлов? Имеет ли смысл выделять несколько потоков?
Классы рабочих объектов создавать динамически и QThread, тоже
Лучший, спасибо.
сколько еще ждать вторую часть?
16:23 и излучить сигнал backupFinished() в слоте runBackup()
Как можно передать в уже работающий поток какую то команду? К примеру в данном видео команду паузы/отмены копирования?
Или, к примеру, в отдельном потоке выполняется функция, эта функция делает i++ после чего выводит i на экран. Как нибудь можно обнулить i без перезапуска всей функции?
Метод "через жопу": вызвать метод класса, живущего в отдельном потоке, который установит флаг паузы/отмены, а в главном цикле класса проверять флаги и приостанавливать работу (как - хз), либо делать return из главного цикла, завершая таким образом поток.
Обнулить i проще-простого: вызвать метод, обнуляющий i.
А где emitt по завершению копирования?
скажите где вы преподаете и я приду учиться к вам за деньги))
Запилил первый урок посвященный использованию класса QThread. Попробуйте, оцените: ruclips.net/video/a7eedK-D3w8/видео.html
еще б ссылку на исходники.
Ссылка в подсказках к видео
извините, конечно, но либо лыжи не едут, либо я молодец.