Гы, ни строчки разумного кода :) Вот самые откровенные косяки:
1. Первое и самое главное - называй объекты понятными именами, по которым можно понять что это такое. Конечно, если это не микропример из 5 строк.
2. Похоже, ты скопировал строчки из сгенерированного утилитой pyuic файла? Не делай так, просто инклудь его и наследуй свой класс от сгенерированного. Короче, нагугли туториалы по pyqt, а то ты совсем не шаришь.
3.
M().widget.hide()
M().widget_2.show()
Этими строчками ты создаешь новые объекты класса M, которые уничтожаются сразу по завершении метода X. Если уж очень хочется эксплуатировать родительский класс из дочернего, то передавай ссылку на него туда, но это не круто и чревато сложно распутываемыми узлами. А то, что у тебя реализует класс A можно сделать с помощью QTimer.
4. Класс M - object?
zazaza
Естественно эту штука не работает…