Size: a a a

2020 December 26

T

Timur Bairamukov 🚫🧢... in Qt
mefest
не очень понял задачу, но думаю да. главное что рисование происходит из gui потока.

а так лучше более подробно описать задачу
у меня класс mainWindow наследуется от QMainWindow, в нём я и хочу проводить всю работу. Задача заключается в том, чтобы в многопотоке рисовать множество мандельброта с возможностью ресайза, зума и пермещения по картинке, но чтобы это работало быстро (то есть, например ресайз не дожидался конца отрисовки кратинки, а приостанавливал отрисовку со старыми размерами окна и отрисовывал с новыми)
источник

AU

Abu Umar in Qt
Timur Bairamukov 🚫🧢
у меня класс mainWindow наследуется от QMainWindow, в нём я и хочу проводить всю работу. Задача заключается в том, чтобы в многопотоке рисовать множество мандельброта с возможностью ресайза, зума и пермещения по картинке, но чтобы это работало быстро (то есть, например ресайз не дожидался конца отрисовки кратинки, а приостанавливал отрисовку со старыми размерами окна и отрисовывал с новыми)
источник

T

Timur Bairamukov 🚫🧢... in Qt
спасибо, попробую распарсить, что там происходит)
источник

T

Timur Bairamukov 🚫🧢... in Qt
тут вроде в одном потоке рисуется
источник

T

Timur Bairamukov 🚫🧢... in Qt
mefest
насколько я знаю нет.
выполняй нужные вычисления в других потоках, отправляй сигнал, а gui поток подписан на этот сигнал и рисует что надо
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 передать кастомные данные?
источник

B

BAHR in Qt
Timur Bairamukov 🚫🧢
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(), и естественно обрабатывать его как Вам нужно.
источник

T

Timur Bairamukov 🚫🧢... in Qt
BAHR
Извиняюсь, не вникал в Ваш первоначальный вопрос, но почему нужно использовать именно paintEvent??? Можно создать свое событие, унаследовав его от QEvent и отсылать его с помощью QCoreApplication::postEvent(), и естественно обрабатывать его как Вам нужно.
А разве QPainter можно юзать где-то кроме paintEvent?
источник
2020 December 27

S

Sergey eSKon in Qt
Халил
Я новичок в программировании. Какой канал порекомендуете в ютубе?
блин, на ютюбе можно научиться последовательности нажатия кнопок, но никак не программированию. Видимо в глазах тех, кто только собирается начать изучать программирование, последнее представляется чем-то вроде программирования смарт-тв с пульта - будильник там настроить, запись передачи. Сейчас посмотрю ютюб, мне покажут последовательность нажатия кнопочек и я буду программистом. Программист в первую очередь это алгоритмическое мышление. Тут только книги и практика-практика-практика. Ютюб это только для ознакомления со средой программирования. Ещё бывает полезным уже программисту освоить опыт чей-то, кому лень писать тексты и проще снять видео. Но учиться программированию так нельзя.
источник

CC

Cool Cooler in Qt
А мне кажется, что можно строго говоря
Книжки наверное сами по себе лучше, если ты достаточно не ленив
источник

RG

Renat Garaev in Qt
Sergey eSKon
блин, на ютюбе можно научиться последовательности нажатия кнопок, но никак не программированию. Видимо в глазах тех, кто только собирается начать изучать программирование, последнее представляется чем-то вроде программирования смарт-тв с пульта - будильник там настроить, запись передачи. Сейчас посмотрю ютюб, мне покажут последовательность нажатия кнопочек и я буду программистом. Программист в первую очередь это алгоритмическое мышление. Тут только книги и практика-практика-практика. Ютюб это только для ознакомления со средой программирования. Ещё бывает полезным уже программисту освоить опыт чей-то, кому лень писать тексты и проще снять видео. Но учиться программированию так нельзя.
Так скоро будет чат вопрос ответ по видео. Типа новичок пишет видео скидывывает его. Знатоки смотрят видео, потом решают его задачу и записывают ему решение. Возможно так можно чему то научиться. Но я поддерживаю, что нужно мышление, а не просто смотреть "как нащелкать кнопки.а потом ой у меня этого нету, что-то изменилось, не понимаю что это тут такое он спрашивает"
источник

A

Alex Ф-ф-фэils!🌠︙... in Qt
Renat Garaev
Так скоро будет чат вопрос ответ по видео. Типа новичок пишет видео скидывывает его. Знатоки смотрят видео, потом решают его задачу и записывают ему решение. Возможно так можно чему то научиться. Но я поддерживаю, что нужно мышление, а не просто смотреть "как нащелкать кнопки.а потом ой у меня этого нету, что-то изменилось, не понимаю что это тут такое он спрашивает"
Да
источник

S

Sergey eSKon in Qt
Cool Cooler
А мне кажется, что можно строго говоря
Книжки наверное сами по себе лучше, если ты достаточно не ленив
а потом приходят люди на работу устраиваться, которые считают себя знатоками... ну, к примеру, программирования на кьюте, но по факту знают только как накидать форму в дизайнере и оживить её. При этом теряются когда им говоришь что-нибудь типа: сделай этот метод статическим, а эту переменную локальной. Они смотрят на тебя непонимающим взглядом. Тут ты начинаешь подозревать недоброе и спрашиваешь, а скажи ка мне, чем отличается локальная память от глобальной? Что такое стек? Когда инициализируются статические член-данные? и сотню важных вопросов - и ни на один он не может ответить
источник

A

Alex Ф-ф-фэils!🌠︙... in Qt
Cool Cooler
А мне кажется, что можно строго говоря
Книжки наверное сами по себе лучше, если ты достаточно не ленив
Навык программирования не появится после видоса
источник

/

/dev/desider in Qt
Alex Ф-ф-фэils!🌠︙
Навык программирования не появится после видоса
блин, я только Гошу Дударя с Хаунди Хо посмотрел, пук-пук(((
источник

CC

Cool Cooler in Qt
Alex Ф-ф-фэils!🌠︙
Навык программирования не появится после видоса
Ну практиковаться тоже надо, заводить пет-проекты там
источник

CC

Cool Cooler in Qt
Мне тоже как-нибудь надо завести
Норм такой пет-проект
источник

FS

Flower Surgeon in Qt
Alex Ф-ф-фэils!🌠︙
Навык программирования не появится после видоса
+++
источник

FS

Flower Surgeon in Qt
постоянно практиковаться нужно
источник

NM

Nastya Medveda in Qt
Помогите, пожалуйста, не могу понять почему делегат, который должен отрисовывать progres Bar в таблице работает неправильно.

Вместо отображения прогресс бара в последнем столюце рисует вот это.

Вот мой код:
https://pastebin.com/dufJGzha
источник

nursultan Оmurgaziev... in Qt
кто знает билиотеку для рендера пдф документов только вот с уже готовыми статичискими библиотеками
источник