это я привел так для примера.
На самом деле мне не надо вызывать print(i) вообще, я его привел для того, чтобы не пугать синтаксисом людей. Вот реальный код, который должен заработать.
def hide (self):
h = [self.vbox, self.vbox_basic]
for i in h:
self.grid.removeItem(i)
Имеется список h, который содержит в себе self.vbox и self.vbox_basic, мы берем пробегаем по списку с помощью цикла for и вставляем его элементы в self.grid.removeItem(i) (этот метод удаляет объекты из сетки PyQt).
В итоге, когда проходит цикл, у меня получается такое self.grid.removeItem(object at 0x0000000003AEC248) и, естественно, код не срабатывает, а он должен вставлять self.grid.removeItem(self.vbox) и потом self.grid.removeItem(self.vbox_basic) и удалять эти объекты из сетки.
Мне посоветовали __Str__, но я так понял, этот метод преобразует в строку и потом вставляется строка, однако, выходит ошибка, что мол ты используешь тип данных ‘str’.