コード例 #1
0
EffectSettingsWidget::EffectSettingsWidget(const QList<EffectParameter> &parameters, QWidget *parent)
    : QWidget(parent)
    , m_parameters(parameters)
{
    QFormLayout *layout = new QFormLayout;

    foreach (EffectParameter parameter, parameters) {
        switch (parameter.type()) {
        case QVariant::Int:
            {
                QSlider *slider = new QSlider(Qt::Horizontal);
                slider->setRange(parameter.minimum().toInt(), parameter.maximum().toInt());
                slider->setValue(parameter.defaultValue().toInt());
                slider->setSingleStep(parameter.step().toInt());

                layout->addRow(parameter.name(), slider);
                m_selectors.append(slider);
            }
            break;
        case QVariant::Color:
            {
                ColorPicker *picker = new ColorPicker;
                picker->setColor(qvariant_cast<QColor>(parameter.defaultValue()));

                layout->addRow(parameter.name(), picker);
                m_selectors.append(picker);
            }
            break;
        default:
            m_selectors.append(0);
        }
    }

    setLayout(layout);
}