コード例 #1
0
void tst_QFormLayout::setFormStyle()
{
    QWidget widget;
    QFormLayout layout;
    widget.setLayout(&layout);

#if 0 // QT_NO_STYLE_PLASTIQUE
    widget.setStyle(new QPlastiqueStyle());

    QVERIFY(layout.labelAlignment() == Qt::AlignRight);
    QVERIFY(layout.formAlignment() == (Qt::AlignLeft | Qt::AlignTop));
    QVERIFY(layout.fieldGrowthPolicy() == QFormLayout::ExpandingFieldsGrow);
    QVERIFY(layout.rowWrapPolicy() == QFormLayout::DontWrapRows);
#endif

    widget.setStyle(QStyleFactory::create("windows"));

    QVERIFY(layout.labelAlignment() == Qt::AlignLeft);
    QVERIFY(layout.formAlignment() == (Qt::AlignLeft | Qt::AlignTop));
    QVERIFY(layout.fieldGrowthPolicy() == QFormLayout::AllNonFixedFieldsGrow);
    QVERIFY(layout.rowWrapPolicy() == QFormLayout::DontWrapRows);

    /* can't directly create mac style or qtopia style, since
       this test is cross platform.. so create dummy styles that
       return all the right stylehints.
     */
    widget.setStyle(new DummyMacStyle());

    QVERIFY(layout.labelAlignment() == Qt::AlignRight);
    QVERIFY(layout.formAlignment() == (Qt::AlignHCenter | Qt::AlignTop));
    QVERIFY(layout.fieldGrowthPolicy() == QFormLayout::FieldsStayAtSizeHint);
    QVERIFY(layout.rowWrapPolicy() == QFormLayout::DontWrapRows);

    widget.setStyle(new DummyQtopiaStyle());

    QVERIFY(layout.labelAlignment() == Qt::AlignRight);
    QVERIFY(layout.formAlignment() == (Qt::AlignLeft | Qt::AlignTop));
    QVERIFY(layout.fieldGrowthPolicy() == QFormLayout::AllNonFixedFieldsGrow);
    QVERIFY(layout.rowWrapPolicy() == QFormLayout::WrapLongRows);
}