clinicalfilm
наверное нужно произвести еще какое-нибудь шаманство?
Наверное, нужно все-таки последовательно почитать учебник, иногда обращаясь к документации Qt, уяснить разницу между QWidget (и его наследниками) и QLayout (QHBoxLayout в данном случае), и вообще, о принципах компоновки виджетов, что и описано во второй ссылке.
Причина в том, что класс наследуется от QWidget и функции addWidget у него нет.
А после таких описаний:
clinicalfilm
почему команда addWidget работает если она расположена в теле функции self и не работает если она расположена в другой процедуре, которая вызывается с кнопки
и
другого вопроса я бы рекомендовал почитать
про классы, и разобраться что такое и зачем нужен self.