Ответы пользователя по тегу PyQt
  • Как в python отследить изменился ли параметр в классе?

    @Tirael78
    Конечно можно. Нужно использовать дискрипторы, в очень облегченном виде что то типа:

    class Notepad:
        def __init__(self):
            self._is_change = False
            self.code = None
    
        def __setattr__(self, key, value):
            if key is 'code' and value is not None:
                self.__dict__['_is_change'] = True
                self.__dict__['code'] = value
            else:
                self.__dict__[key] = value
    
        def save(self):
            print('Тут вот сохранили данные на диск')
            self._is_change = False
    
        @property
        def is_change(self):
            return self._is_change


    note_text = Notepad()
    print('is_change {}'.format(note_text.is_change))
    print('Изменили данные в self.code')
    note_text.code = 'bla bla'
    print('is_change {}'.format(note_text.is_change))
    note_text.save()
    print('is_change {}'.format(note_text.is_change))


    на выходе получим
    is_change False
    Изменили данные в self.code
    is_change True
    Тут вот сохранили данные на диск
    is_change False
    Ответ написан
    1 комментарий
  • Как получить доступ к интерфейсу из другого модуля?

    @Tirael78
    Завершается она как раз таки с ошибкой и очень серьезной - вы совершили рекурсивный вызов и приложение упало достигнув предела рекурсии.

    Если вы хотите получить доступ к объекту из разных модулей, то, либо инициализируйте его в третьем модуле и импортируйте, либо передавайте как ссылку на объект.
    Это так, на вскидку, без понимания почему вам нужно сделать именно так.

    Вообще вам имеет смысл почитать о том как правильно развязывать компоненты в приложении.
    Ответ написан
    3 комментария