Qt posso conectar sinais / slots para auto no construtor?

EDIT: Não relacionado a sinais / slots / conectar. Problema foi construtor de chamada de construtor.

Pode haver uma maneira melhor de fazer isso - eu estaria interessado em ouvir essas ...

Eu tenho MyClass que é derivado de um QLabel. Eu quero passar mais dados sobre a classe derivada de volta no sinal do que o que o sinal de base faz. Então criei um espaço para interceptar o sinal customContextMenuRequested e emitir um sinal revisado que tenha mais dados.

Quando tento conectar este sinal no construtor, meu slot nunca é chamado. Mas se eu mover a Política e conectar as linhas para o widget pai (não o pai da hierarquia de classes) para que elas sejam executadas depois que o MyClass estiver totalmente construído, meu slot será chamado. Mas eu sempre quero que isso seja conectado para esta classe e parece algo que eu quero em seu construtor ao invés de contar com a classe pai para lembrar de fazê-lo.

Há algo que estou fazendo errado? Ou uma maneira melhor de adicionar dados a um sinal?

MyClass::MyClass() : QLabel()
{
    QFont currFont = font();
    currFont.setPointSize(15);
    setFont(currFont);

    setBackgroundRole(QPalette::Mid);

    std::cout << "connecting customContextMenuRequested" << std::endl;
    /** PROBLEM START */
    setContextMenuPolicy(Qt::CustomContextMenu);

    // Is there anything wrong with connecting from "this" to "this" in a constructor?

    QObject::connect(this, SIGNAL(customContextMenuRequested(const QPoint&)),
                     this, SLOT(addCellDataToMenuContextRequest(const QPoint&)));
     /* PROBLEM END **/
}


MyClass::MyClass(QString &cellString, int row, int col)
    : QLabel(cellString)
{
    MyClass();
    setRow(row);
    setCol(col);

}

// This one is a slot
void MyClass::addCellDataToMenuContextRequest(const QPoint& pos)
{
        // This doesn't get printed if I connect in my constructor,
        // but it does print if I do the same connect from a parent widget.
    std::cout << "called addCellDataToMenuContextRequest" << std::endl;

    emit customContextMenuRequestedForCell(pos, _row, _col);
}

Então, eu gostaria que o widget pai procurasse apenas o customContextMenuRequestedForCell, mas, no momento, o widget pai também precisa ser responsável pelo customContextMenuRequested.

questionAnswers(2)

yourAnswerToTheQuestion