QT: передача QDialog как объекта

Я новичок в QT. У меня есть несколько QDialogs в моем проекте QT. Я создал общий класс для изменения свойств виджетов внутри QDialogs. В моем универсальном классе есть метод static, который изменяет свойства виджетов.

void MyClass::setFontsizeToWidgets(float modValue, QObject obj)
{
    QFont f;
    float pointSize = 0.0;

    QList<QPushButton*> buttons = obj.findChildren<QPushButton*>();

    foreach ( QPushButton * button, buttons)
    {
        f = button->font();
        pointSize = f.pointSizeF();
        f.setPointSizeF(pointSize*modValue);
        button->setFont(f);
    }
}

Теперь мои вопросы: как передать QDialog как объект вышеуказанному статическому методу из класса QDialog? Так что статический метод изменит размер шрифта кнопок QPushButton в QDialog.


person Arun    schedule 19.12.2013    source источник
comment
Вероятно, вы хотите, чтобы obj было ссылкой или указателем: void MyClass::setFontsizeToWidgets(float modValue, QObject *obj).   -  person thuga    schedule 19.12.2013
comment
Это нормально. Но как при вызове этого метода из класса QDialog передать QDialog как объект QObject?   -  person Arun    schedule 19.12.2013
comment
Передайте это. QDialog — это QWidget, это QObject. Таким образом, вы можете передать QDialog* как QObject*.   -  person Frank Osterfeld    schedule 19.12.2013


Ответы (1)


Вы можете сделать это следующим образом:

void MyClass::setFontsizeToWidgets(float modValue, QObject *obj)
{
    //do something 
}

void MyDialog::someFunction() //this is a function of your QDialog class
{
    MyClass::setFontsizeToWidgets(10, this);
}
person thuga    schedule 19.12.2013