void FitDialog::initFitPage() { QGridLayout *gl1 = new QGridLayout(); gl1->addWidget(new QLabel(tr("Curve")), 0, 0); boxCurve = new QComboBox(); gl1->addWidget(boxCurve, 0, 1); gl1->addWidget(new QLabel(tr("Function")), 1, 0); lblFunction = new QLabel(); gl1->addWidget(lblFunction, 1, 1); boxFunction = new QTextEdit(); boxFunction->setReadOnly(true); QPalette palette = boxFunction->palette(); palette.setColor(QPalette::Active, QPalette::Base, Qt::lightGray); boxFunction->setPalette(palette); boxFunction->setMaximumHeight(50); gl1->addWidget(boxFunction, 2, 1); gl1->addWidget(new QLabel( tr("Initial guesses")), 3, 0 ); boxParams = new QTableWidget(); boxParams->setColumnCount(3); boxParams->horizontalHeader()->setClickable(false); boxParams->horizontalHeader()->setResizeMode (0, QHeaderView::ResizeToContents); boxParams->horizontalHeader()->setResizeMode (1, QHeaderView::Stretch); boxParams->horizontalHeader()->setResizeMode (2, QHeaderView::ResizeToContents); QStringList header = QStringList() << tr("Parameter") << tr("Value") << tr("Constant"); boxParams->setHorizontalHeaderLabels(header); boxParams->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents); boxParams->verticalHeader()->hide(); gl1->addWidget(boxParams, 3, 1); gl1->addWidget(new QLabel( tr("Algorithm")), 4, 0 ); boxAlgorithm = new QComboBox(); boxAlgorithm->addItem(tr("Scaled Levenberg-Marquardt")); boxAlgorithm->addItem(tr("Unscaled Levenberg-Marquardt")); boxAlgorithm->addItem(tr("Nelder-Mead Simplex")); gl1->addWidget(boxAlgorithm, 4, 1); gl1->addWidget(new QLabel( tr("Color")), 5, 0); boxColor = new ColorBox(); boxColor->setColor(QColor(Qt::red)); gl1->addWidget(boxColor, 5, 1); QGroupBox *gb1 = new QGroupBox(); gb1->setLayout(gl1); QGridLayout *gl2 = new QGridLayout(); gl2->addWidget(new QLabel(tr("From x=")), 0, 0); boxFrom = new QLineEdit(); gl2->addWidget(boxFrom, 0, 1); gl2->addWidget(new QLabel( tr("To x=")), 1, 0); boxTo = new QLineEdit(); gl2->addWidget(boxTo, 1, 1); QGroupBox *gb2 = new QGroupBox(); gb2->setLayout(gl2); QGridLayout *gl3 = new QGridLayout(); gl3->addWidget(new QLabel(tr("Iterations")), 0, 0); boxPoints = new QSpinBox(); boxPoints->setRange(10, 10000); boxPoints->setSingleStep(50); boxPoints->setValue(1000); gl3->addWidget(boxPoints, 0, 1); gl3->addWidget(new QLabel( tr("Tolerance")), 1, 0); boxTolerance = new QLineEdit("1e-4"); gl3->addWidget(boxTolerance, 1, 1); QGroupBox *gb3 = new QGroupBox(); gb3->setLayout(gl3); QHBoxLayout *hbox1 = new QHBoxLayout(); hbox1->addWidget(gb2); hbox1->addWidget(gb3); QHBoxLayout *hbox2 = new QHBoxLayout(); hbox2->addWidget(new QLabel(tr( "Y Error Source" ))); boxYErrorSource = new QComboBox(); boxYErrorSource->addItem(tr("Errors Unknown")); boxYErrorSource->addItem(tr("Associated")); boxYErrorSource->addItem(tr("Statistical (Poisson)")); boxYErrorSource->addItem(tr("Arbitrary Dataset")); hbox2->addWidget(boxYErrorSource); QGroupBox *gb4 = new QGroupBox(); gb4->setLayout(hbox2); tableNamesBox = new QComboBox(); tableNamesBox->setEnabled(false); hbox2->addWidget(tableNamesBox); colNamesBox = new QComboBox(); colNamesBox->setEnabled(false); hbox2->addWidget(colNamesBox); QHBoxLayout *hbox3 = new QHBoxLayout(); buttonEdit = new QPushButton(tr( "<< &Edit function" ) ); hbox3->addWidget(buttonEdit); btnDeleteFitCurves = new QPushButton(tr( "&Delete Fit Curves" )); hbox3->addWidget(btnDeleteFitCurves); buttonOk = new QPushButton(tr( "&Fit" ) ); buttonOk->setDefault( true ); hbox3->addWidget(buttonOk); buttonCancel1 = new QPushButton(tr( "&Close" )); hbox3->addWidget(buttonCancel1); buttonAdvanced = new QPushButton(tr( "Custom &Output >>" )); hbox3->addWidget(buttonAdvanced); hbox3->addStretch(); QVBoxLayout *vbox1 = new QVBoxLayout(); vbox1->addWidget(gb1); vbox1->addLayout(hbox1); vbox1->addWidget(gb4); vbox1->addLayout(hbox3); fitPage = new QWidget(); fitPage->setLayout(vbox1); tw->addWidget(fitPage); connect( boxCurve, SIGNAL( activated(const QString&) ), this, SLOT( activateCurve(const QString&) ) ); connect( buttonOk, SIGNAL( clicked() ), this, SLOT(accept())); connect( buttonCancel1, SIGNAL( clicked() ), this, SLOT(close())); connect( buttonEdit, SIGNAL( clicked() ), this, SLOT(showEditPage())); connect( btnDeleteFitCurves, SIGNAL( clicked() ), this, SLOT(deleteFitCurves())); connect( boxYErrorSource, SIGNAL( activated(int) ), this, SLOT( yErrorSourceChanged(int) ) ); connect( buttonAdvanced, SIGNAL(clicked()), this, SLOT(showAdvancedPage() ) ); connect( tableNamesBox, SIGNAL( activated(int) ), this, SLOT( selectSrcTable(int) ) ); setFocusProxy(boxFunction); }
void fitDialog::initFitPage() { fitPage = new QWidget( tw, "fitPage" ); QButtonGroup *GroupBox1 = new QButtonGroup( 2,QGroupBox::Horizontal,tr(""), fitPage,"GroupBox1" ); new QLabel( tr("Curve"), GroupBox1, "TextLabel22",0 ); boxCurve = new QComboBox(GroupBox1, "boxCurve" ); new QLabel( tr("Function"), GroupBox1, "TextLabel2",0 ); lblFunction = new QLabel(GroupBox1, "boxOrder" ); new QLabel(QString::null, GroupBox1, "TextLabel2",0 ); boxFunction = new QTextEdit(GroupBox1, "boxOrder" ); boxFunction->setReadOnly(true); boxFunction->setMaximumHeight(60); new QLabel( tr("Initial guesses"), GroupBox1, "TextLabel23",0 ); boxParams = new QTable(GroupBox1, "boxParams"); boxParams->setNumCols(2); QStringList header; header << tr("Parameter") << tr("Value"); boxParams->setColumnLabels(header); boxParams->setColumnReadOnly(0, true); boxParams->setColumnStretchable(1, true); new QLabel( tr("Algorithm"), GroupBox1, "TextLabel44",0 ); boxSolver = new QComboBox(GroupBox1, "boxSolver" ); boxSolver->insertItem(tr("Scaled Levenberg-Marquardt")); boxSolver->insertItem(tr("Unscaled Levenberg-Marquardt")); boxSolver->insertItem(tr("Nelder-Mead Simplex")); new QLabel( tr("Color"), GroupBox1, "boxColorLabel",0 ); boxColor = new ColorBox( FALSE, GroupBox1); boxColor->setColor(QColor(red)); QHBox *hbox=new QHBox(fitPage,"hbox"); hbox->setSpacing(5); QButtonGroup* GroupBox4 = new QButtonGroup(2,QGroupBox::Horizontal,tr( "" ),hbox, "GroupBox4" ); new QLabel( tr("From x="), GroupBox4, "TextLabel3",0 ); boxFrom = new QLineEdit(GroupBox4, "boxFrom" ); new QLabel( tr("To x="), GroupBox4, "TextLabel5",0 ); boxTo = new QLineEdit(GroupBox4, "boxOrder" ); QButtonGroup *GroupBox3 = new QButtonGroup( 2,QGroupBox::Horizontal,tr(""),hbox,"GroupBox3" ); new QLabel( tr("Iterations"), GroupBox3, "TextLabel4",0 ); boxPoints = new QSpinBox(10, 10000, 50, GroupBox3, "boxStart" ); boxPoints->setValue(1000); new QLabel( tr("Tolerance"), GroupBox3, "TextLabel41",0 ); boxTolerance = new QLineEdit(GroupBox3, "boxTolerance" ); boxTolerance->setText("1e-4"); QButtonGroup *GroupBox2 = new QButtonGroup(4,QGroupBox::Horizontal,tr(""),fitPage,"GroupBox2" ); GroupBox2->setFlat (TRUE); GroupBox2->setLineWidth (0); buttonEdit = new QPushButton(GroupBox2, "buttonOk" ); buttonEdit->setText( tr( "<< &Edit function" ) ); btnDeleteTables = new QPushButton(GroupBox2, "btnDeleteTables" ); btnDeleteTables->setText( tr( "&Delete Fit Curves" ) ); buttonOk = new QPushButton(GroupBox2, "buttonOk" ); buttonOk->setText( tr( "&Fit" ) ); buttonOk->setAutoDefault( TRUE ); buttonOk->setDefault( TRUE ); buttonCancel = new QPushButton(GroupBox2, "buttonCancel" ); buttonCancel->setText( tr( "&Cancel" ) ); QVBoxLayout* hlayout = new QVBoxLayout(fitPage, 5, 5, "hlayout"); hlayout->addWidget(GroupBox1); hlayout->addWidget(hbox); hlayout->addWidget(GroupBox2); // signals and slots connections connect( boxCurve, SIGNAL( activated(int) ), this, SLOT( activateCurve(int) ) ); connect( buttonOk, SIGNAL( clicked() ), this, SLOT(accept())); connect( buttonCancel, SIGNAL( clicked() ), this, SLOT(close())); connect( buttonEdit, SIGNAL( clicked() ), this, SLOT(showEditPage())); connect( btnDeleteTables, SIGNAL( clicked() ), (ApplicationWindow *)this->parent(), SLOT(deleteFitTables())); setFocusProxy(boxFunction); }