Ejemplo n.º 1
0
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    Widget mainWindow;
    QDial *newDial = new QDial;
    QProgressBar *newProgressBar = new QProgressBar;

      newDial->setRange(0,100);
      newDial->setNotchTarget(5);
      newDial->setNotchesVisible(true);
      newDial->setPageStep(20);

   QObject::connect(newDial,SIGNAL(valueChanged(int)),newProgressBar,SLOT(setValue(int)));

   QBoxLayout *boxLayout = new QBoxLayout(QBoxLayout::TopToBottom);
     boxLayout->addWidget(newDial);
     boxLayout->addWidget(newProgressBar);

     mainWindow.setWindowTitle("Dial Change");
     mainWindow.setLayout(boxLayout);
     mainWindow.setGeometry(430,330,200,200);
     mainWindow.show();


    return a.exec();
}
Ejemplo n.º 2
0
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QPushButton hello("Hello world!");
    hello.resize(100, 30);
    hello.setFont(QFont("Arial", 18, QFont::Bold));
    hello.setGeometry(400, 200 , 180, 40);

    QDial dial;
    dial.show();

    hello.show();
    return app.exec();
}
void tst_QBoxLayout::setGeometry()
{
    QWidget w;
    QVBoxLayout *lay = new QVBoxLayout;
    lay->setMargin(0);
    lay->setSpacing(0);
    QHBoxLayout *lay2 = new QHBoxLayout;
    QDial *dial = new QDial;
    lay2->addWidget(dial);
    lay2->setAlignment(Qt::AlignTop);
    lay2->setAlignment(Qt::AlignRight);
    lay->addLayout(lay2);
    w.setLayout(lay);
    w.show();

    QRect newGeom(0, 0, 70, 70);
    lay2->setGeometry(newGeom);
    QVERIFY2(newGeom.contains(dial->geometry()), "dial->geometry() should be smaller and within newGeom");
}
Ejemplo n.º 4
0
void QuteKnob::knobChanged(int value)
{
#ifdef  USE_WIDGET_MUTEX
	widgetLock.lockForWrite();
#endif
	double min = property("QCS_minimum").toDouble();
	double max = property("QCS_maximum").toDouble();
	QDial *knob = static_cast<QDial *>(m_widget);
	double normalized = (double) (value - knob->minimum())
			/ (double) (knob->maximum() - knob->minimum());
	m_value =  min + (normalized * (max-min));
	//  setInternalValue(scaledValue);
	m_valueChanged = true;
	QPair<QString, double> channelValue(m_channel, m_value);
#ifdef  USE_WIDGET_MUTEX
	widgetLock.unlock();
#endif
	emit newValue(channelValue);
}
Ejemplo n.º 5
0
int main(int argc, char **argv) {
  QApplication app(argc, argv);

  QDial *dial = new QDial();
  dial->show();

  QLCDNumber *lcdnumber = new QLCDNumber();
  lcdnumber->display(12345);
  lcdnumber->show();

  QSlider *slider = new QSlider(Qt::Horizontal);
  slider->show();
  
  QHBoxLayout *hbox = new QHBoxLayout();
  QPushButton *button = new QPushButton("Push Me");
  QLineEdit *input = new QLineEdit();
  hbox->addWidget(button);
  hbox->addWidget(input);
  QWidget *widget = new QWidget();
  widget->setLayout(hbox);
  widget->show();

  return app.exec();
}
Ejemplo n.º 6
0
void tst_QDial::valueChanged()
{
    QDial dial;
    dial.setMinimum(0);
    dial.setMaximum(100);
    QSignalSpy spy(&dial, SIGNAL(valueChanged(int)));
    dial.setValue(50);
    QCOMPARE(spy.count(), 1);
    spy.clear();
    dial.setValue(25);
    QCOMPARE(spy.count(), 1);
    spy.clear();
    // repeat!
    dial.setValue(25);
    QCOMPARE(spy.count(), 0);
}
Ejemplo n.º 7
0
int Dial::wrapping(lua_State * L) //  const : bool
{
	QDial* obj = QtObject<QDial>::check( L, 1);
	Util::push( L, obj->wrapping() );
	return 1;
}
Ejemplo n.º 8
0
int Dial::setNotchTarget(lua_State * L) //  double target 
{
	QDial* obj = QtObject<QDial>::check( L, 1);
	obj->setNotchTarget(Util::toDbl( L, 2 ));
	return 0;
}
Ejemplo n.º 9
0
int Dial::notchesVisible(lua_State * L) //  const : bool
{
	QDial* obj = QtObject<QDial>::check( L, 1);
	Util::push( L, obj->notchesVisible() );
	return 1;
}
Ejemplo n.º 10
0
int Dial::notchTarget(lua_State * L) //  const : qreal
{
	QDial* obj = QtObject<QDial>::check( L, 1);
	Util::push( L, obj->notchTarget() );
	return 1;
}
Ejemplo n.º 11
0
int Dial::notchSize(lua_State * L) //  const : int
{
	QDial* obj = QtObject<QDial>::check( L, 1);
	Util::push( L, obj->notchSize() );
	return 1;
}
Ejemplo n.º 12
0
/**
  @brief Initialise un widget avec une liste de parametres
  @param widget Widget parent
  @param list Liste des parametres
  @remarks Les noms des widgets doivent correspondres avec les noms de paramètres
*/
void Configurable::configToWidget(QObject* widget,ConfigParamList& list){

    //scan les elements enfants
    for(ConfigParamList::const_iterator cur = list.begin(); cur != list.end(); cur++){
        QString name = cur->first;
        QString value = cur->second->getValue();
        QWidget* child = widget->findChild<QWidget*>(name);
        if(child==0){
            QPRINT("configToWidget: "+name+" not found");
            continue;
        }

        // QLineEdit ?
        QLineEdit *lineEdit = qobject_cast<QLineEdit *>(child);
        if(lineEdit){
           lineEdit->setText(value);
           continue;
        }

        // QComboBox ?
        QComboBox *comboBox = qobject_cast<QComboBox *>(child);
        if(comboBox){
            comboBox->setCurrentIndex(comboBox->findText(value));
            continue;
         }

        // QSpinBox ?
        QSpinBox *spinBox = qobject_cast<QSpinBox *>(child);
        if(spinBox){
            spinBox->setValue(value.toInt());
            continue;
         }


        // QDoubleSpinBox ?
        QDoubleSpinBox *doubleSpinBox = qobject_cast<QDoubleSpinBox *>(child);
        if(doubleSpinBox){
            doubleSpinBox->setValue(value.toInt());
            continue;
         }

        // QTextEdit ?
        QTextEdit *textEdit = qobject_cast<QTextEdit *>(child);
        if(textEdit){
            textEdit->setPlainText(value);
            continue;
         }

        // QPlainTextEdit ?
        QPlainTextEdit *plainTextEdit = qobject_cast<QPlainTextEdit *>(child);
        if(plainTextEdit){
            plainTextEdit->setPlainText(value);
            continue;
         }

        // QTimeEdit ?
        QTimeEdit *timeEdit = qobject_cast<QTimeEdit *>(child);
        if(timeEdit){
            timeEdit->setTime(QTime::fromString(value));
            continue;
         }

        // QDateTimeEdit ?
        QDateTimeEdit *dateTimeEdit = qobject_cast<QDateTimeEdit *>(child);
        if(dateTimeEdit){
            timeEdit->setDateTime(QDateTime::fromString(value));
            continue;
         }

        // QDateEdit ?
        QDateEdit *dateEdit = qobject_cast<QDateEdit *>(child);
        if(dateEdit){
            dateEdit->setDate(QDate::fromString(value));
            continue;
         }

        // QDial ?
        QDial *dial = qobject_cast<QDial *>(child);
        if(dial){
            dial->setValue(value.toInt());
            continue;
         }

        // QSlider ?
        QSlider *slider = qobject_cast<QSlider *>(child);
        if(slider){
            slider->setValue(value.toInt());
            continue;
         }

    }

}
Ejemplo n.º 13
0
/**
  @copydoc Configurable::configFromWidget
*/
void Configurable::configFromNextWidget(QObject* cur,ConfigParamList& paramList){

    //parametres de configuration
    const QObjectList& list = cur->children();
    for(int i=0;i<list.size();i++)
    {
        QObject* child = list.at(i);
        if(!child->objectName().isEmpty() && child->isWidgetType())
        {
            QString value;

            // QLineEdit ?
            QLineEdit *lineEdit = qobject_cast<QLineEdit *>(child);
            if(lineEdit)
               value = lineEdit->text();

            // QComboBox ?
            QComboBox *comboBox = qobject_cast<QComboBox *>(child);
            if(comboBox)
                value = comboBox->currentText();

            // QSpinBox ?
            QSpinBox *spinBox = qobject_cast<QSpinBox *>(child);
            if(spinBox)
                value = spinBox->text();

            // QDoubleSpinBox ?
            QDoubleSpinBox *doubleSpinBox = qobject_cast<QDoubleSpinBox *>(child);
            if(doubleSpinBox)
                value = doubleSpinBox->text();

            // QTextEdit ?
            QTextEdit *textEdit = qobject_cast<QTextEdit *>(child);
            if(textEdit)
                value = textEdit->toPlainText();

            // QPlainTextEdit ?
            QPlainTextEdit *plainTextEdit = qobject_cast<QPlainTextEdit *>(child);
            if(plainTextEdit)
                value = plainTextEdit->toPlainText();

            // QTimeEdit ?
            QTimeEdit *timeEdit = qobject_cast<QTimeEdit *>(child);
            if(timeEdit)
                value = timeEdit->text();

            // QDateTimeEdit ?
            QDateTimeEdit *dateTimeEdit = qobject_cast<QDateTimeEdit *>(child);
            if(dateTimeEdit)
                value = timeEdit->text();

            // QDateEdit ?
            QDateEdit *dateEdit = qobject_cast<QDateEdit *>(child);
            if(dateEdit)
                value = dateEdit->text();

            // QDial ?
            QDial *dial = qobject_cast<QDial *>(child);
            if(dial)
                value = QString::number(dial->value());

            // QSlider ?
            QSlider *slider = qobject_cast<QSlider *>(child);
            if(slider)
                value = QString::number(slider->value());

            //sauvegarde la valeur
            if(!value.isNull()){
/*#ifdef _DEBUG
                QPRINT("loadConfig >> "+child->objectName()+"="+value);
#endif*/
                if(paramList.find(child->objectName()) != paramList.end())
                    paramList[child->objectName()]->setValue(value);
                else
                    paramList[child->objectName()] = new ConfigParam(value,"");
            }
        }
        Configurable::configFromNextWidget(child,paramList);
    }
}
Ejemplo n.º 14
0
void tst_QDial::sliderMoved()
{
    //this tests that when dragging the arrow that the sliderMoved signal is emitted
    //even if tracking is set to false
    QDial dial;
    dial.setTracking(false);
    dial.setMinimum(0);
    dial.setMaximum(100);

    dial.show();

    QPoint init(dial.width()/4, dial.height()/2);

    QMouseEvent pressevent(QEvent::MouseButtonPress, init,
        Qt::LeftButton, Qt::LeftButton, 0);
    qApp->sendEvent(&dial, &pressevent);

    QSignalSpy sliderspy(&dial, SIGNAL(sliderMoved(int)));
    QSignalSpy valuespy(&dial, SIGNAL(valueChanged(int)));


    { //move on top of the slider
        init = QPoint(dial.width()/2, dial.height()/4);
        QMouseEvent moveevent(QEvent::MouseMove, init,
            Qt::LeftButton, Qt::LeftButton, 0);
        qApp->sendEvent(&dial, &moveevent);
        QCOMPARE( sliderspy.count(), 1);
        QCOMPARE( valuespy.count(), 0);
    }


    { //move on the right of the slider
        init = QPoint(dial.width()*3/4, dial.height()/2);
        QMouseEvent moveevent(QEvent::MouseMove, init,
            Qt::LeftButton, Qt::LeftButton, 0);
        qApp->sendEvent(&dial, &moveevent);
        QCOMPARE( sliderspy.count(), 2);
        QCOMPARE( valuespy.count(), 0);
    }

    QMouseEvent releaseevent(QEvent::MouseButtonRelease, init,
        Qt::LeftButton, Qt::LeftButton, 0);
    qApp->sendEvent(&dial, &releaseevent);
    QCOMPARE( valuespy.count(), 1); // valuechanged signal should be called at this point

}
Ejemplo n.º 15
0
void tst_QDial::wrappingCheck()
{
    //This tests if dial will wrap past the maximum value back to the minimum
    //and vice versa when changing the value with a keypress
    QDial dial;
    dial.setMinimum(0);
    dial.setMaximum(100);
    dial.setSingleStep(1);
    dial.setWrapping(true);
    dial.setValue(99);
    dial.show();

    { //set value to maximum but do not wrap
        QTest::keyPress(&dial, Qt::Key_Up);
        QCOMPARE( dial.value(), 100);
    }

    { //step up once more and wrap clockwise to minimum + 1
        QTest::keyPress(&dial, Qt::Key_Up);
        QCOMPARE( dial.value(), 1);
    }

    { //step down once, and wrap anti-clockwise to minimum, then again to maximum - 1
        QTest::keyPress(&dial, Qt::Key_Down);
        QCOMPARE( dial.value(), 0);

        QTest::keyPress(&dial, Qt::Key_Down);
        QCOMPARE( dial.value(), 99);
    }

    { //when wrapping property is false no wrapping will occur
        dial.setWrapping(false);
        dial.setValue(100);

        QTest::keyPress(&dial, Qt::Key_Up);
        QCOMPARE( dial.value(), 100);

        dial.setValue(0);
        QTest::keyPress(&dial, Qt::Key_Down);
        QCOMPARE( dial.value(), 0);
    }

    { //When the step is really big or small, wrapping should still behave
        dial.setWrapping(true);
        dial.setValue(dial.minimum());
        dial.setSingleStep(305);

        QTest::keyPress(&dial, Qt::Key_Up);
        QCOMPARE( dial.value(), 5);

        dial.setValue(dial.minimum());
        QTest::keyPress(&dial, Qt::Key_Down);
        QCOMPARE( dial.value(), 95);

        dial.setMinimum(-30);
        dial.setMaximum(-4);
        dial.setSingleStep(200);
        dial.setValue(dial.minimum());
        QTest::keyPress(&dial, Qt::Key_Down);
        QCOMPARE( dial.value(), -22);
    }
}