A herança tripla causa conflito de metaclasse… Às vezes

Parece que eu me deparei com um inferno de metaclasse, mesmo quando não queria nada com iss

Estou escrevendo um aplicativo no Qt4 usando PySide. Desejo separar a parte orientada a eventos da definição da interface do usuário, gerada a partir dos arquivos do Qt Designer. Por isso, crio classes de "controladores", mas para facilitar minha vida, eu as herdo de várias maneiras. Um exemplo

class BaseController(QObject):
    def setupEvents(self, parent):
        self.window = parent

class MainController(BaseController):
    pass

class MainWindow(QMainWindow, Ui_MainWindow, MainController):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)

        self.setupUi(self)
  ,      self.setupEvents(self)

This obras como esperado. Ele também tem herança de QDialog, Ui_Dialog, BaseController). Mas quando eu subclasseBaseController e tente herdar da referida subclasse (no lugar deBaseController), Recebo um erro:

TypeError: erro ao chamar o conflito de metaclasse de bases de metaclasses: a metaclasse de uma classe derivada deve ser uma subclasse (não estrita) das metaclasses de todas as suas bases

Clarificação: AmbosQMainWindow eQDialog herdar deQObject. BaseController também deve herdar dele devido às peculiaridades do sistema de eventos Qt. As classes Ui_ herdam apenas da classe de objeto Python simples. Procurei soluções, mas todas elas envolvem casos de uso intencional de metaclasses. Então, devo estar fazendo algo terrivelmente errad

EDIT: Minha descrição pode ser mais clara adicionando gráfico

Exemplo de trabalho:

QObject
|      \___________________
|            object        |
QMainWindow     |          BaseController
|      /---Ui_MainWindow   |
|      |                   MainController
MainWindow-----------------/

Outro exemplo de trabalho:

QObject
|      \___________________
|            object        |
QDialog         |          BaseController
|      /---Ui_OtherWindow  |
|      |                   |
OtherWindow----------------/

Nem exemplo de trabalho:

QObject
|      \___________________
|            object        |
QDialog         |          BaseController
|      /---Ui_OtherWindow  |
|      |                   OtherController
OtherWindow----------------/

questionAnswers(2)

yourAnswerToTheQuestion