Название: перерисовать сетку изображений[РЕШЕНО] Отправлено: Zeka13 от Апрель 23, 2012, 17:58 Доброго времени суток.
Всё дело происходит на QGraphicsScene Никак не могу сообразить как поступить, есть массив объектов, заполняю его QPixmap''ами и кидаю на сцену, затем эту сцену отображаю. Хочу чтоб через время(использую таймер) все Pixmap''ы удалились и появились новые Как-то так: цикл заполнения --> увидеть сетку таймер цикл удаления старого заполнения + новое заполнения --> увидеть новую сетку собственно проблемы с последним пунктом, не знаю как реализовать, в коде есть комментарии вот часть кода, мини проект во вложении Заранее огромное спасибо за любую помощь! http://paste.ubuntu.com/942605/ Название: Re: перерисовать сетку изображений Отправлено: V1KT0P от Апрель 23, 2012, 19:08 Доброго времени суток. У тебя там одна утечка:Всё дело происходит на QGraphicsScene Никак не могу сообразить как поступить, есть массив объектов, заполняю его QPixmap''ами и кидаю на сцену, затем эту сцену отображаю. Хочу чтоб через время(использую таймер) все Pixmap''ы удалились и появились новые Как-то так: цикл заполнения таймер цикл удаления старого заполнения + новое заполнения собственно проблемы с последним пунктом, не знаю как реализовать, в коде есть комментарии вот часть кода, мини проект во вложении Заранее огромное спасибо за любую помощь! http://paste.ubuntu.com/942605/ Код Вот это лишнее: "new QGraphicsPixmapItem()". Ибо addPixmap сам выделяет память под новый объект. Я не уверен что тебе надо постоянно удалять и создавать новые объекты, поэтому я разместил там две кнопки. По нажатию на первую все пиксмапы удаляются и создаются новые, а вторая кнопка просто меняет пиксмапы у готовых объектов. А спинбокс это твой supernumber. Название: Re: перерисовать сетку изображений Отправлено: Zeka13 от Апрель 23, 2012, 19:54 спасибо огромное
вот только у меня остаётся вопрос, как без нажатия кнопки вызвать любой из ваших слотов, прямо из кода, в каком месте сделать вызов? у меня просто сеточка будет после расчётов в коде меняться, кнопками совсем не устраивает... Название: Re: перерисовать сетку изображений Отправлено: V1KT0P от Апрель 23, 2012, 20:03 спасибо огромное Как только надо изменить изображения так сразу вызывайте нужную функцию.вот только у меня остаётся вопрос, как без нажатия кнопки вызвать любой из ваших слотов, прямо из кода, в каком месте сделать вызов? у меня просто сеточка будет после расчётов в коде меняться, кнопками совсем не устраивает... Название: Re: перерисовать сетку изображений Отправлено: Zeka13 от Апрель 23, 2012, 20:11 Ну вот мне надо чтоб первый вариант отрисовался, потом сработал таймер и выполнилось on_deleteAndAddNew_clicked()
что-то типо того, но тут получается зацикливание Код
Название: Re: перерисовать сетку изображений Отправлено: Bepec от Апрель 23, 2012, 20:16 Стражи форева. В виде булевских флагов.
Название: Re: перерисовать сетку изображений Отправлено: Zeka13 от Апрель 23, 2012, 20:19 я вас не понял, да и не только в зацикливание мне кажется дело
Название: Re: перерисовать сетку изображений Отправлено: Bepec от Апрель 23, 2012, 20:20 Моя реплика относилась только к зацикливанию - стражи, в виде булевских переменных "рисовать" и "рисовать = false" избавят тебя от рекурсии.
Название: Re: перерисовать сетку изображений Отправлено: Zeka13 от Апрель 23, 2012, 20:28 да даже если я закоменчу этот fitScene не происходит то, что мне нужно
я хочу увидеть первую сетку, ничего не нажимать и увидеть вторую, например результат on_deleteAndAddNew_clicked() а куда бы я не вставил вызов этого метода, я вижу только вторую сетку(которую сформировал on_deleteAndAddNew_clicked()) сейчас происходит вот так вот цикл заполнения таймер цикл удаления старого заполнения + новое заполнения либо цикл заполнения --> увидеть сетку нажать кнопку цикл удаления старого заполнения + новое заполнения --> увидеть новую сетку а мне надо цикл заполнения --> увидеть сетку таймер цикл удаления старого заполнения + новое заполнения --> увидеть новую сетку Название: Re: перерисовать сетку изображений Отправлено: Zeka13 от Апрель 24, 2012, 21:23 сделал так
Код
ещё раз спасибо всем за внимание! |