Удаление gif файла, подключенного в QMovie
Собственно. Есть лэйблы с разным содержимым(QPixmap, QMovie), пути к которому берутся из файлов и возможность их удаления. С QPixmap всё работает без нареканий, а вот удалять .gif файл не хочет - крашится. Дебаггер говорит, мол, разрешения нет - файл занят. Я так понял, что проблема в том, что он подключен в QMovie. Как можно решить это?
p.s И можно мнение по поводу метода удаления пути из файла - насколько корректен, не будет ли проблем с большим файлом и т.д
import sys, os
from PyQt5 import QtWidgets
from PyQt5.QtGui import QMovie, QPixmap
from PyQt5.QtWidgets import *
class MyWin(QWidget):
def __init__(self):
super().__init__()
with open('path.txt', 'r', encoding='utf-8') as path:
file = path.read()
self.label = QLabel(self)
self.movie = QMovie(file)
self.label.setMovie(self.movie)
self.movie.start()
button = QPushButton('Push me', self)
button.setGeometry(200, 350, 100, 20)
button.clicked.connect(lambda c, item=file : self.delete_item(item))
self.resize(400, 400)
def delete_item(self, item):
os.remove(item)
with open('path.txt', "r+", encoding='utf-8') as file1:
f = file1.read()
f = f.replace(item, '')
print(f + 'fw')
with open('path.txt', 'w', encoding='utf-8') as output:
output.write(f)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MyWin()
w.show()