int main(int argc, char *argv[]) { QApplication application(argc, argv); CalcWidget window; window.show(); return application.exec(); }
int main(int argc, char *argv[]) { QApplication a(argc, argv); QtScriptedStateMachine *sm = QtScriptedStateMachine::load(":/calc.scxml"); CalcWidget w; sm->registerObject(&w,"",true); QObject::connect (&w, SIGNAL(command(QString)), sm, SLOT(postNamedEvent(QString))); w.show(); sm->start(); return a.exec(); }
/** * Populate this dialog with the appropriate field editor widgets for the * database's columns, and set them to match the data in the specified row. * * @param rowId The data row to be edited or copied */ void RowEditor::addContent(int rowId) { QScrollArea *sa = new QScrollArea(this); vbox->addWidget(sa); QWidget *grid = new QWidget(); sa->setWidgetResizable(true); colNames = db->listColumns(); int count = colNames.count(); QGridLayout *layout = Factory::gridLayout(grid, true); QStringList values; if (rowId != -1) { values = db->getRow(rowId); } else { for (int i = 0; i < count; i++) { values.append(db->getDefault(colNames[i])); } } initialFocus = 0; colTypes = db->listTypes(); for (int i = 0; i < count; i++) { QString name = colNames[i]; int type = colTypes[i]; layout->addWidget(new QLabel(name + " ", grid), i, 0); if (type == BOOLEAN) { QCheckBox *box = new QCheckBox(grid); layout->addWidget(box, i, 1); if (values[i].toInt()) { box->setChecked(true); } checkBoxes.append(box); } else if (type == INTEGER || type == FLOAT) { NumberWidget *widget = new NumberWidget(type, grid); layout->addWidget(widget, i, 1); widget->setValue(values[i]); numberWidgets.append(widget); if (!initialFocus) { initialFocus = widget; } } else if (type == NOTE) { NoteButton *button = new NoteButton(name, grid); layout->addWidget(button, i, 1); button->setContent(values[i]); noteButtons.append(button); } else if (type == DATE) { DateWidget *widget = new DateWidget(grid); layout->addWidget(widget, i, 1); widget->setDate(values[i].toInt()); dateWidgets.append(widget); } else if (type == TIME) { TimeWidget *widget = new TimeWidget(grid); layout->addWidget(widget, i, 1); int defaultTime = values[i].toInt(); if (defaultTime == 0) { defaultTime = -2; } widget->setTime(defaultTime); timeWidgets.append(widget); } else if (type == CALC) { CalcWidget *widget = new CalcWidget(db, name, colNames, this, grid); layout->addWidget(widget, i, 1); widget->setValue(values[i]); calcWidgets.append(widget); } else if (type == SEQUENCE) { QLabel *label = new QLabel(values[i], grid); layout->addWidget(label, i, 1); sequenceLabels.append(label); } else if (type == IMAGE) { ImageSelector *widget = new ImageSelector(db, grid); layout->addWidget(widget, i, 1); widget->setField(rowId, name); widget->setFormat(values[i]); imageSelectors.append(widget); } else if (type >= FIRST_ENUM) { QComboBox *combo = new QComboBox(grid); layout->addWidget(combo, i, 1); QStringList options = db->listEnumOptions(type); combo->addItems(options); int index = options.indexOf(values[i]); combo->setCurrentIndex(index); comboBoxes.append(combo); } else { DynamicEdit *edit = new DynamicEdit(grid); layout->addWidget(edit, i, 1); edit->setPlainText(values[i]); dynamicEdits.append(edit); if (!initialFocus) { initialFocus = edit; } } } layout->addWidget(new QWidget(grid), count, 0, 1, 2); layout->setRowStretch(count, 1); sa->setWidget(grid); finishLayout(true, true, 400, 400); }