участки окна из разных потоков?
Из разных потоков рисовать действительно нужно, так как вычисления длительные
насколько я знаю нет. выполняй нужные вычисления в других потоках, отправляй сигнал, а gui поток подписан на этот сигнал и рисует что надо
получится ли так рисовать разные участки mainwindow?
If you really need to use multiple threads, what you'll probably need to do is have the threads do all their calculations on their own private data structures that the Qt GUI thread has no access to. Then when the threads have computed their results, they should send the results back to the Qt GUI thread (via queued connection or QApplication::postEvent()). The GUI thread can then look at the results and use them to update the QGraphicsItems, etc; this will be "safe" because this update can't happen in the middle of a window update. я так понял, это надо выполнять с помощью QCoreApplication::postEvent, но postEvent принимает QEvent, нам нужно чтоб QEvent.type был у нас paint, чтобы мы могли заюзать painter, но как нам тогда в paintEvent передать кастомные данные?
Извиняюсь, не вникал в Ваш первоначальный вопрос, но почему нужно использовать именно paintEvent??? Можно создать свое событие, унаследовав его от QEvent и отсылать его с помощью QCoreApplication::postEvent(), и естественно обрабатывать его как Вам нужно.
А разве QPainter можно юзать где-то кроме paintEvent?
Обсуждают сегодня