Найти - Пользователи
Полная версия: Как очистить старую графическую сцену scene = QGraphicsScene(self) при повторном входе
Начало » Python для новичков » Как очистить старую графическую сцену scene = QGraphicsScene(self) при повторном входе
1
GS
Добрый день
PyQt5, Питон 3.4.
Создаю сцену в новом окне, рисую линии и пишу тексты. При повторном входе сохраняется старые рисунки.
Понимаю, что в ините надо бы сцену почистить или создавать заново, но не получается этого сделать. Первая программа и в основном компилируется из примеров методом тыка.
Создаю так
self.widget = GraphWidget()
self.widget.setGeometry(100, 100, 600, 600)
self.widget.show()
…………
class GraphWidget(QGraphicsView):
def __init__(self):
super(GraphWidget, self).__init__()
self.timerId = 0
scene = QGraphicsScene(self)
scene.setItemIndexMethod(QGraphicsScene.NoIndex)

vic57
QList<QGraphicsItem *> QGraphicsScene::items () const
Возвращает список элементов на сцене в произвольном порядке.
Смотрите также addItem() и removeItem()
void QGraphicsScene::clear()
Removes and deletes all items from the scene, but otherwise leaves the state of the scene unchanged.
GS
vic57
void QGraphicsScene::clear()
У меня в питоне с voidом напряженка.
vic57
RTFM
 >>> from PyQt5 import Qt
>>> help(Qt.QGraphicsScene.clear)
Help on built-in function clear:
clear(...)
    clear(self)
>>> 
GS
После добавления
from PyQt5 import Qt
выдает
File “C:\Program Files\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py”, line 220, in __init__
builtins.AttributeError: ‘module’ object has no attribute ‘AlignLeading’

220 self.label.setAlignment(Qt.AlignLeading|Qt.AlignRight|Qt.AlignTop)
PS. Ошибки синтаксиса в конце концов удалось победить хоть и не так как в хелпе. Но толку ноль. Непонятно вообще куда очистку сцены вставлять. Наверно надо как-то эту сцену закрывать и открывать новую. Но как? В общем как-то даже странно.
GS
Какая глупая ошибка. Понятно почему не чистилась сцена. Только когда сделал пример, где сцена чистилась, а потом стал закрашивать всю сцену, но изображений все равно было два, до меня дошло: Я передавал координаты через глобальный список, но на новой картинке список не обнулял и она добавлялась после старой. Жертва appenda.
Кстати сцена чистится командой:
self.scene = QGraphicsScene()
…………………………………………..
self.scene.clear()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB