QMetaObject::invokeMethod() geerbte Slots aufrufen



  • Hallo,
    ich habe ein Problem beim aufrufen geerbter slots:

    QMetaObject::invokeMethod(pDbi->title, "setFont", Qt::QueuedConnection, Q_ARG(QFont, font18));
    

    Dabei bekomme ich immer folgenden Output als Fehlermeldung:

    QMetaObject::invokeMethod: No such method QLabel::setFont(QFont)
    

    Weshalb wird die Funtion nicht aufgerufen?



  • Hallo,

    weil QWidget::setFont nicht als Slot definiert ist.
    Sonst evtl. Q_OBJECT bei Deiner Klasse vergessen.

    Warum rufst Du nicht direkt "pDbi->title->setFont(font18)" auf?

    Viele Grüße,

    Jakob



  • Q_OBJECT wird doch nur bentötigt, wenn die Klasse eigene Slots und Signale besitzt. Q_OBECJT in der Klasse zu definieren, löst das Problem nicht.

    Naja, ich muss QMetaObject::invokeMethod verwenden, da ich von einem Thread aus arbeite.



  • So wie es aussieht muss man den Text mittels setProperty() setzten:

    pDbi->title->setProperty("text", QVariant("hello"));
    

Anmelden zum Antworten