/*! Return a new viewType. */ QAbstractItemView *ViewsToTest::createView(const QString &viewType) { QAbstractItemView *view = 0; if (viewType == "QListView_ScrollPerItem") { view = new QListView(); view->setObjectName("QListView"); view->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); view->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); } else if (viewType == "QListView_ScrollPerPixel") { view = new QListView(); view->setObjectName("QListView"); view->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); view->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); } else if (viewType == "QHeaderViewHorizontal") { view = new QHeaderView(Qt::Horizontal); view->setObjectName("QHeaderView"); } else if (viewType == "QHeaderViewVertical") { view = new QHeaderView(Qt::Vertical); view->setObjectName("QHeaderView"); } else if (viewType == "QTableView_ScrollPerItem") { view = new QTableView(); view->setObjectName("QTableView"); view->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); view->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); } else if (viewType == "QTableView_ScrollPerPixel") { view = new QTableView(); view->setObjectName("QTableView"); view->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); view->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); } else if (viewType == "QTableViewNoGrid") { QTableView *table = new QTableView(); table->setObjectName("QTableView"); table->setShowGrid(false); view = table; } else if (viewType == "QTreeView_ScrollPerItem") { view = new QTreeView(); view->setObjectName("QTreeView"); view->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); view->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); view->setSelectionBehavior(QAbstractItemView::SelectItems); } else if (viewType == "QTreeView_ScrollPerPixel") { view = new QTreeView(); view->setObjectName("QTreeView"); view->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); view->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); view->setSelectionBehavior(QAbstractItemView::SelectItems); } Q_ASSERT(view); return view; }
QWidget* WidgetStyle::createWidget(const QString& name) { if(name == "CheckBox") { QCheckBox* box = new QCheckBox("CheckBox"); box->setObjectName("CheckBox"); return setLayoutWidget({ box }, { 100, 30 }); } else if(name == "ComboBox") { QComboBox* box = new QComboBox; box->addItem("Item1"); box->addItem("Item3"); box->addItem("Item3"); box->setObjectName("ComboBox"); return setLayoutWidget({ box }, { 70, 30 }); } else if(name == "DateEdit") { QDateEdit* date = new QDateEdit; date->setObjectName("DateEdit"); return setLayoutWidget({ date }, { 110, 40 }); } else if(name == "DateTimeEdit") { QDateTimeEdit* date = new QDateTimeEdit; date->setObjectName("DateTimeEdit"); return setLayoutWidget({ date }, { 160, 30 }); } else if(name == "Dialog") { QDialog* dialog = new QDialog; dialog->setObjectName("Dialog"); return setLayoutWidget({ dialog }, { 160, 110 }); } else if(name == "DockWidget") //? { QDockWidget* widget = new QDockWidget; widget->setObjectName("DockWidget"); widget->resize(61, 22); return widget; } else if(name == "DoubleSpinBox") { QDoubleSpinBox* box = new QDoubleSpinBox; box->setObjectName("DoubleSpinBox"); return setLayoutWidget({ box }, { 90, 40 }); } else if(name == "Frame") //?? { QFrame* frame = new QFrame; frame->setObjectName("Frame"); frame->resize(150, 100); return frame; } else if(name == "GroupBox") { QGroupBox* box = new QGroupBox("GroupBox"); box->setObjectName("GroupBox"); return setLayoutWidget({ box }, { 160, 110 }); } else if(name == "Label") { QLabel* label = new QLabel("Label"); label->setObjectName("Label"); return setLayoutWidget({ label }, { 40, 20}); } else if(name == "LineEdit") { QLineEdit* line = new QLineEdit; line->setObjectName("LineEdit"); return setLayoutWidget({ line }, { 30, 30 }); } else if(name == "ListView") //?? { QListView* view = new QListView; view->setObjectName("ListView"); view->resize(71, 71); return view; } else if(name == "ListWidget") { QListWidget* list = new QListWidget; list->setObjectName("ListWidget"); for(int i = 0; i < 20; i++) list->addItem(QString("Item %1").arg(i)); return setLayoutWidget({ list }, { 80, 80 }); } else if(name == "MainWindow") { QMainWindow* window = new QMainWindow; window->setObjectName("MainWindow"); return setLayoutWidget({ window }, { 160, 110 }); } else if(name == "Menu") { QMenu* parentMenu = new QMenu; parentMenu->setObjectName("Menu"); parentMenu->addMenu("Menu1"); QMenu* menu1 = parentMenu->addMenu("Menu2"); menu1->addMenu("Menu1"); menu1->addMenu("Menu2"); parentMenu->addSeparator(); parentMenu->addMenu("Menu3"); return setLayoutWidget({ parentMenu }, { 160, 110 }); } else if(name == "MenuBar") { QMenuBar* bar = new QMenuBar; bar->setObjectName("QMenuBar"); QMenu* menu1 = bar->addMenu("MenuBar1"); menu1->addMenu("Menu1"); menu1->addSeparator(); menu1->addMenu("Menu2"); QMenu* menu2 = bar->addMenu("MenuBar2"); menu2->addMenu("Menu1"); menu2->addSeparator(); menu2->addMenu("Menu2"); QMenu* menu3 = bar->addMenu("MenuBar3"); menu3->addMenu("Menu1"); menu3->addSeparator(); menu3->addMenu("Menu2"); return setLayoutWidget({ bar }, { 280, 60 }); } else if(name == "ProgressBar") { QProgressBar* bar = new QProgressBar; bar->setObjectName("ProgressBar"); bar->setRange(0, 100); bar->setValue(0); QTimer* timer = new QTimer(bar); this->connect(timer, &QTimer::timeout, this, [bar]() { if(bar->value() == 100) bar->setValue(0); else bar->setValue(bar->value() + 1); }); timer->start(100); return setLayoutWidget({ bar }, { 110, 30 }); } else if(name == "PushButton") { QPushButton* button = new QPushButton("PushButton"); button->setObjectName("PushButton"); return setLayoutWidget({ button }, { 125, 30 }); } else if(name == "RadioButton") { QRadioButton* button = new QRadioButton("RadioButton"); button->setObjectName("RadioButton"); return setLayoutWidget({ button }, { 125, 30 }); } else if(name == "ScrollBar") { QScrollBar* barH = new QScrollBar(Qt::Horizontal); QScrollBar* barV = new QScrollBar(Qt::Vertical); barH->setObjectName("ScrollBarH"); barV->setObjectName("ScrollBarV"); return setLayoutWidget({ barH, barV }, { 200, 100 }); } else if(name == "Slider") { QSlider* sliderH = new QSlider(Qt::Horizontal); QSlider* sliderV = new QSlider(Qt::Vertical); sliderH->setObjectName("SliderH"); sliderV->setObjectName("SliderV"); return setLayoutWidget({ sliderH, sliderV }, { 200, 100 }); } else if(name == "SpinBox") { QSpinBox* spinBox = new QSpinBox; spinBox->setObjectName("SpinBox"); return setLayoutWidget({ spinBox }, { 60, 35 }); } else if(name == "Splitter") { QSplitter* splitterV = new QSplitter(Qt::Vertical); QSplitter* splitterH = new QSplitter(Qt::Horizontal); splitterV->setObjectName("SplitterV"); splitterH->setObjectName("SplitterH"); splitterV->addWidget(new QPushButton("PushButton1")); splitterV->addWidget(new QPushButton("PushButton2")); splitterH->addWidget(splitterV); splitterH->addWidget(new QPushButton("PushButton3")); return setLayoutWidget({ splitterH }, { 250, 110 }); } else if(name == "TabWidget") { QTabWidget* tab = new QTabWidget; tab->addTab(new QWidget, "Widget1"); tab->addTab(new QWidget, "Widget2"); tab->addTab(new QWidget, "Widget3"); tab->setObjectName("TabWidget"); return setLayoutWidget({ tab }, { 210, 110 }); } else if(name == "TableView") //? { QTableView* view = new QTableView; view->setObjectName("TableView"); view->resize(200, 100); return view; } else if(name == "TableWidget") { const int n = 100; QStringList list = { "one", "two", "three" }; QTableWidget* table = new QTableWidget(n, n); table->setObjectName("TableWidget"); table->setHorizontalHeaderLabels(list); table->setVerticalHeaderLabels(list); for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) table->setItem(i, j, new QTableWidgetItem(QString("%1, %2").arg(i).arg(j))); return setLayoutWidget({ table }, { 210, 110 }); } else if(name == "TextEdit") { QTextEdit* text = new QTextEdit; text->setObjectName("TextEdit"); return setLayoutWidget({ text }, { 80, 80 }); } else if(name == "TimeEdit") { QTimeEdit* time = new QTimeEdit; time->setObjectName("TimeEdit"); return setLayoutWidget({ time }, { 80, 80 }); } else if(name == "ToolButton") { QToolButton* button = new QToolButton; button->setText("ToolButton"); button->setObjectName("ToolButton"); return setLayoutWidget({ button }, { 95, 25 }); } else if(name == "ToolBox") { QToolBox* box = new QToolBox; box->addItem(new QWidget, "Widget1"); box->addItem(new QWidget, "Widget2"); box->addItem(new QWidget, "Widget3"); box->setObjectName("ToolBox"); return setLayoutWidget({ box }, { 110, 180 }); } else if(name == "TreeView") //? { QTreeView* tree = new QTreeView; tree->setObjectName("TreeView"); tree->resize(200, 100); return tree; } else if(name == "TreeWidget") { QTreeWidget* tree = new QTreeWidget; tree->setObjectName("TreeWidget"); tree->setHeaderLabels({ "Folders", "Used Space" }); QTreeWidgetItem* item = new QTreeWidgetItem(tree); item->setText(0, "Local Disk"); for(int i = 1; i < 20; i++) { QTreeWidgetItem* dir = new QTreeWidgetItem(item); dir->setText(0, "Directory" + QString::number(i)); dir->setText(1, QString::number(i) + "MB"); } tree->setItemExpanded(item, true); return setLayoutWidget({ tree }, { 210, 110 }); } else if(name == "Widget") { QWidget* widget = new QWidget; widget->setObjectName("Widget"); return setLayoutWidget({ widget }, { 210, 110 }); } return nullptr; }
void setupUi(QDialog *MemberEditDialog) { p = MemberEditDialog; mainWidget = new QWidget(MemberEditDialog); horizontalLayout = new QHBoxLayout(mainWidget); tabWidget = new QTabWidget(mainWidget); generalTab = new QWidget(); generalHLayout = new QHBoxLayout(generalTab); formWidget = new QWidget(generalTab); formTab1LeftLayout = new QFormLayout(formWidget); titleLabel = new QLabel(formWidget); firstNameLabel = new QLabel(formWidget); firstNameLineEdit = new QLineEdit(formWidget); lastNameLabel = new QLabel(formWidget); lastNameLineEdit = new QLineEdit(formWidget); streetLabel = new QLabel(formWidget); zipLabel = new QLabel(formWidget); streetHorizontalWidget = new QWidget(formWidget); streetHLayout = new QHBoxLayout(streetHorizontalWidget); streetLineEdit = new QLineEdit(streetHorizontalWidget); numberLabel = new QLabel(streetHorizontalWidget); numberLineEdit = new QLineEdit(streetHorizontalWidget); cityHorizontalWidget = new QWidget(formWidget); cityHLayout = new QHBoxLayout(cityHorizontalWidget); zipLineEdit = new QLineEdit(cityHorizontalWidget); cityLabel = new QLabel(cityHorizontalWidget); cityLineEdit = new QLineEdit(cityHorizontalWidget); titleHorizontalWidget = new QWidget(formWidget); titleHLayout = new QHBoxLayout(titleHorizontalWidget); comboBox = new QComboBox(titleHorizontalWidget); titleExtLabel = new QLabel(titleHorizontalWidget); titleExtLineEdit = new QLineEdit(titleHorizontalWidget); formTab1Right = new QWidget(generalTab); formTab1RightLayout = new QFormLayout(formTab1Right); phoneLabel = new QLabel(formTab1Right); phoneEdit = new QLineEdit(formTab1Right); cellLabel = new QLabel(formTab1Right); cellEdit = new QLineEdit(formTab1Right); emailLabel = new QLabel(formTab1Right); emailEdit = new QLineEdit(formTab1Right); maritalLabel = new QLabel(formTab1Right); maritalCBox = new QComboBox(formTab1Right); accountTab = new QWidget(); accountVLayout = new QVBoxLayout(accountTab); tableView = new QTableView(accountTab); tab2BottomLayout = new QHBoxLayout(); formTab2BottomLayout = new QFormLayout(); ibanLabel = new QLabel(accountTab); ibanLineEdit = new QLineEdit(accountTab); bicLabel = new QLabel(accountTab); bicLineEdit = new QLineEdit(accountTab); ownerLabel = new QLabel(accountTab); ownerLineEdit = new QLineEdit(accountTab); noteLabel = new QLabel(accountTab); noteLineEdit = new QLineEdit(accountTab); buttonsTab2BottomLayout = new QVBoxLayout(); addButton = new QPushButton(accountTab); editButton = new QPushButton(accountTab); deleteButton = new QPushButton(accountTab); verticalLayout = new QVBoxLayout(); okButton = new QPushButton(mainWidget); applyButton = new QPushButton(mainWidget); verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); leaveButton = new QPushButton(mainWidget); verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); cancelButton = new QPushButton(mainWidget); // # layout definitions # // tabs on left, buttons on the right horizontalLayout->addWidget(tabWidget); horizontalLayout->addLayout(verticalLayout); // set up buttons on right verticalLayout->addWidget(okButton); verticalLayout->addWidget(applyButton); verticalLayout->addItem(verticalSpacer); verticalLayout->addWidget(leaveButton); verticalLayout->addItem(verticalSpacer_2); verticalLayout->addWidget(cancelButton); // set up tabs tabWidget->addTab(generalTab, QString()); tabWidget->addTab(accountTab, QString()); tabWidget->setCurrentIndex(0); // set up general tab generalHLayout->addWidget(formWidget); generalHLayout->addWidget(formTab1Right); // set up account tab accountVLayout->addWidget(tableView); accountVLayout->addLayout(tab2BottomLayout); accountVLayout->setContentsMargins(0, 0, 0, 0); // set up lazout of bottom part of account tab // form and buttons to add entries to table in a h-box tab2BottomLayout->addLayout(formTab2BottomLayout); tab2BottomLayout->addLayout(buttonsTab2BottomLayout); // buttons column of bottom part of account tab buttonsTab2BottomLayout->addWidget(addButton); buttonsTab2BottomLayout->addWidget(editButton); buttonsTab2BottomLayout->addWidget(deleteButton); // ## forms of general tab / general personal data ## // left side - personal data, address, etc. formTab1LeftLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow); formTab1LeftLayout->setWidget(0, QFormLayout::LabelRole, titleLabel); formTab1LeftLayout->setWidget(0, QFormLayout::FieldRole, titleHorizontalWidget); formTab1LeftLayout->setWidget(1, QFormLayout::LabelRole, firstNameLabel); formTab1LeftLayout->setWidget(1, QFormLayout::FieldRole, firstNameLineEdit); formTab1LeftLayout->setWidget(2, QFormLayout::LabelRole, lastNameLabel); formTab1LeftLayout->setWidget(2, QFormLayout::FieldRole, lastNameLineEdit); formTab1LeftLayout->setWidget(3, QFormLayout::LabelRole, streetLabel); formTab1LeftLayout->setWidget(3, QFormLayout::FieldRole, streetHorizontalWidget); formTab1LeftLayout->setWidget(4, QFormLayout::LabelRole, zipLabel); formTab1LeftLayout->setWidget(4, QFormLayout::FieldRole, cityHorizontalWidget); // right side - phone, email, formTab1RightLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow); formTab1RightLayout->setWidget(0, QFormLayout::LabelRole, phoneLabel); // phone formTab1RightLayout->setWidget(0, QFormLayout::FieldRole, phoneEdit); formTab1RightLayout->setWidget(1, QFormLayout::LabelRole, cellLabel); // mobile / cell phone number formTab1RightLayout->setWidget(1, QFormLayout::FieldRole, cellEdit); formTab1RightLayout->setWidget(2, QFormLayout::LabelRole, emailLabel); // email formTab1RightLayout->setWidget(2, QFormLayout::FieldRole, emailEdit); formTab1RightLayout->setWidget(3, QFormLayout::LabelRole, maritalLabel); // marital status formTab1RightLayout->setWidget(3, QFormLayout::FieldRole, maritalCBox); // form on bottom of account tab formTab2BottomLayout->setWidget(0, QFormLayout::LabelRole, ibanLabel); formTab2BottomLayout->setWidget(0, QFormLayout::FieldRole, ibanLineEdit); formTab2BottomLayout->setWidget(1, QFormLayout::LabelRole, bicLabel); formTab2BottomLayout->setWidget(1, QFormLayout::FieldRole, bicLineEdit); formTab2BottomLayout->setWidget(2, QFormLayout::LabelRole, ownerLabel); formTab2BottomLayout->setWidget(2, QFormLayout::FieldRole, ownerLineEdit); formTab2BottomLayout->setWidget(3, QFormLayout::LabelRole, noteLabel); formTab2BottomLayout->setWidget(3, QFormLayout::FieldRole, noteLineEdit); // street and number next to each other in one cell // so put them in a hbox and that into the form streetHLayout->addWidget(streetLineEdit); streetHLayout->addWidget(numberLabel); streetHLayout->addWidget(numberLineEdit); streetHLayout->setContentsMargins(0, 0, 0, 0); streetHLayout->setStretch(0, 5); streetHLayout->setStretch(2, 1); // zip and city in one cell like above cityHLayout->addWidget(zipLineEdit); cityHLayout->addWidget(cityLabel); cityHLayout->addWidget(cityLineEdit); cityHLayout->setContentsMargins(0, 0, 0, 0); // title and titleext like above titleHLayout->addWidget(comboBox); titleHLayout->addWidget(titleExtLabel); titleHLayout->addWidget(titleExtLineEdit); titleHLayout->setContentsMargins(0, 0, 0, 0); // zip codes have only 5 digits, also define appropriate size zipLineEdit->setMaxLength(5); zipLineEdit->setMaximumSize(QSize(80, 16777215)); // initial siye of dialog. TODO: Save in conf on quit. Restore here. MemberEditDialog->resize(1200, 700); updateGeometry(); retranslateUi(MemberEditDialog); QMetaObject::connectSlotsByName(MemberEditDialog); if (MemberEditDialog->objectName().isEmpty()) MemberEditDialog->setObjectName(QStringLiteral("MemberEditDialog")); mainWidget->setObjectName(QStringLiteral("mainWidget")); horizontalLayout->setObjectName(QStringLiteral("horizontalLayout")); tabWidget->setObjectName(QStringLiteral("tabWidget")); generalTab->setObjectName(QStringLiteral("generalTab")); generalHLayout->setObjectName(QStringLiteral("generalHLayout")); formWidget->setObjectName(QStringLiteral("formWidget")); formTab1LeftLayout->setObjectName(QStringLiteral("formTab1LeftLayout")); titleLabel->setObjectName(QStringLiteral("titleLabel")); firstNameLabel->setObjectName(QStringLiteral("firstNameLabel")); firstNameLineEdit->setObjectName(QStringLiteral("firstNameLineEdit")); lastNameLabel->setObjectName(QStringLiteral("lastNameLabel")); lastNameLineEdit->setObjectName(QStringLiteral("lastNameLineEdit")); streetLabel->setObjectName(QStringLiteral("streetLabel")); zipLabel->setObjectName(QStringLiteral("zipLabel")); streetHorizontalWidget->setObjectName(QStringLiteral("streetHorizontalWidget")); streetHLayout->setObjectName(QStringLiteral("streetHLayout")); streetLineEdit->setObjectName(QStringLiteral("streetLineEdit")); numberLabel->setObjectName(QStringLiteral("numberLabel")); numberLineEdit->setObjectName(QStringLiteral("numberLineEdit")); cityHorizontalWidget->setObjectName(QStringLiteral("cityHorizontalWidget")); cityHLayout->setObjectName(QStringLiteral("cityHLayout")); zipLineEdit->setObjectName(QStringLiteral("zipLineEdit")); cityLabel->setObjectName(QStringLiteral("cityLabel")); cityLineEdit->setObjectName(QStringLiteral("cityLineEdit")); titleHorizontalWidget->setObjectName(QStringLiteral("titleHorizontalWidget")); titleHLayout->setObjectName(QStringLiteral("titleHLayout")); comboBox->setObjectName(QStringLiteral("comboBox")); titleExtLabel->setObjectName(QStringLiteral("titleExtLabel")); titleExtLineEdit->setObjectName(QStringLiteral("titleExtLineEdit")); formTab1Right->setObjectName(QStringLiteral("formTab1Right")); formTab1RightLayout->setObjectName(QStringLiteral("formTab1RightLayout")); phoneLabel->setObjectName(QStringLiteral("phoneLabel")); phoneEdit->setObjectName(QStringLiteral("phoneEdit")); cellLabel->setObjectName(QStringLiteral("cellLabel")); cellEdit->setObjectName(QStringLiteral("cellEdit")); emailLabel->setObjectName(QStringLiteral("emailLabel")); emailEdit->setObjectName(QStringLiteral("emailEdit")); maritalLabel->setObjectName(QStringLiteral("maritalLabel")); maritalCBox->setObjectName(QStringLiteral("maritalCBox")); accountTab->setObjectName(QStringLiteral("accountTab")); accountVLayout->setObjectName(QStringLiteral("accountVLayout")); tableView->setObjectName(QStringLiteral("tableView")); tab2BottomLayout->setObjectName(QStringLiteral("tab2BottomLayout")); formTab2BottomLayout->setObjectName(QStringLiteral("formTab2BottomLayout")); ibanLabel->setObjectName(QStringLiteral("ibanLabel")); ibanLineEdit->setObjectName(QStringLiteral("ibanLineEdit")); bicLabel->setObjectName(QStringLiteral("bicLabel")); bicLineEdit->setObjectName(QStringLiteral("bicLineEdit")); ownerLabel->setObjectName(QStringLiteral("ownerLabel")); ownerLineEdit->setObjectName(QStringLiteral("ownerLineEdit")); noteLabel->setObjectName(QStringLiteral("noteLabel")); noteLineEdit->setObjectName(QStringLiteral("noteLineEdit")); buttonsTab2BottomLayout->setObjectName(QStringLiteral("buttonsTab2BottomLayout")); addButton->setObjectName(QStringLiteral("addButton")); editButton->setObjectName(QStringLiteral("editButton")); deleteButton->setObjectName(QStringLiteral("deleteButton")); verticalLayout->setObjectName(QStringLiteral("verticalLayout")); okButton->setObjectName(QStringLiteral("okButton")); applyButton->setObjectName(QStringLiteral("applyButton")); leaveButton->setObjectName(QStringLiteral("leaveButton")); cancelButton->setObjectName(QStringLiteral("cancelButton")); } // setupUi