QT:将QDialog作为对象传递

时间:2013-12-19 06:24:55

标签: qt qobject

我是QT的新手。我的QT项目中有几个QDialog。我创建了一个泛型类来更改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类的上述静态方法?这样静态方法将改变QDialog中QPushButton的字体大小。

1 个答案:

答案 0 :(得分: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);
}