Вопрос

У меня есть пара вопросов.

У меня есть алгоритм, который сгенерирует пару картинок на python, которые должны быть отображены в форме.Для этого я использую PyGt.Мой вопрос заключается в следующем:где я должен запустить свой код?Прямо из инициализатора?В этом случае, судя по тому, что я тестировал, форма не будет отображаться.

  • Должен ли я настроить таймер в конструкторе, который запускает мой алгоритм на полсекунды позже?
  • Будет запущен алгоритм заморозить мой форма делает невозможным, чтобы увидеть сама картина?Я не возражаю, что кнопки, флажки и т.д. зависают во время вычислений, пока текущее изображение все еще видно.
  • Должен ли я использовать что-то вроде c # OnFormLoad()?Если да, то как я могу установить это?Через connect()?
  • Как работает потоковая передача на python?Я слышал, но я не слишком уверен насчет этого, что это была боль, с которой пришлось иметь дело .Так ли это?В c # это так же просто, как написать 4 строки.Я бы хотел использовать это если возможно, но если это будет сложно реализовать, я могу жить без этого.

Спасибо

Это было полезно?

Решение

Возможно, вы захотите проверить Пример Мандельброта.

По сути, идея состоит в том, чтобы использовать рабочий поток для выполнения сложных вычислений (я бы предложил QThread для облегчения связи с основным потоком с помощью сигналов / слотов), затем, как только работа будет выполнена, выдать сигнал с вычисленными данными и попросить основной поток нарисовать его.Вы также можете отобразить изображение в рабочем потоке, если хотите.

Другие советы

Вы можете запустить алгоритм в отдельном потоке, поместив данные в очередь по завершении.Основной поток (GUI) будет периодически выполнять выборку очереди и отображать данные по мере их поступления.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top