#include "T_BaseComponents.h" #include #include #include "ElaCheckBox.h" #include "ElaComboBox.h" #include "ElaMessageButton.h" #include "ElaMultiSelectComboBox.h" #include "ElaPlainTextEdit.h" #include "ElaProgressBar.h" #include "ElaRadioButton.h" #include "ElaScrollPageArea.h" #include "ElaSlider.h" #include "ElaSpinBox.h" #include "ElaText.h" #include "ElaToggleButton.h" #include "ElaToggleSwitch.h" T_BaseComponents::T_BaseComponents(QWidget* parent) : T_BasePage(parent) { // 预览窗口标题 setWindowTitle("ElaBaseComponents"); // 顶部元素 createCustomWidget("一些常用的基础组件被放置于此,可在此界面体验其效果并按需添加进项目中"); _toggleSwitch = new ElaToggleSwitch(this); ElaScrollPageArea* toggleSwitchArea = new ElaScrollPageArea(this); QHBoxLayout* toggleSwitchLayout = new QHBoxLayout(toggleSwitchArea); ElaText* toggleSwitchText = new ElaText("ElaToggleSwitch", this); toggleSwitchText->setTextPixelSize(15); toggleSwitchLayout->addWidget(toggleSwitchText); toggleSwitchLayout->addWidget(_toggleSwitch); toggleSwitchLayout->addStretch(); ElaToggleSwitch* toggleSwitchDisableSwitch = new ElaToggleSwitch(this); ElaText* toggleSwitchDisableText = new ElaText("禁用", this); toggleSwitchDisableText->setTextPixelSize(15); connect(toggleSwitchDisableSwitch, &ElaToggleSwitch::toggled, this, [=](bool checked) { _toggleSwitch->setDisabled(checked); }); toggleSwitchLayout->addWidget(toggleSwitchDisableSwitch); toggleSwitchLayout->addWidget(toggleSwitchDisableText); toggleSwitchLayout->addSpacing(10); _toggleButton = new ElaToggleButton("ToggleButton", this); _toggleButton->setFixedWidth(120); ElaScrollPageArea* toggleButtonArea = new ElaScrollPageArea(this); QHBoxLayout* toggleButtonLayout = new QHBoxLayout(toggleButtonArea); ElaText* toggleButtonText = new ElaText("ElaToggleButton", this); toggleButtonText->setTextPixelSize(15); toggleButtonLayout->addWidget(toggleButtonText); toggleButtonLayout->addWidget(_toggleButton); toggleButtonLayout->addStretch(); ElaToggleSwitch* toggleButtonDisableSwitch = new ElaToggleSwitch(this); ElaText* toggleButtonDisableText = new ElaText("禁用", this); toggleButtonDisableText->setTextPixelSize(15); connect(toggleButtonDisableSwitch, &ElaToggleSwitch::toggled, this, [=](bool checked) { _toggleButton->setDisabled(checked); }); toggleButtonLayout->addWidget(toggleButtonDisableSwitch); toggleButtonLayout->addWidget(toggleButtonDisableText); toggleButtonLayout->addSpacing(10); _comboBox = new ElaComboBox(this); QStringList comboList{ "我愿投身前途未卜的群星", "潜行 步伐小心翼翼", "不留游走痕迹", "如同一簇幽灵", "所谓 道德加上伦理", "抱歉只能律己"}; _comboBox->addItems(comboList); ElaScrollPageArea* comboBoxArea = new ElaScrollPageArea(this); QHBoxLayout* comboBoxLayout = new QHBoxLayout(comboBoxArea); ElaText* comboBoxText = new ElaText("ElaComboBox", this); comboBoxText->setTextPixelSize(15); comboBoxLayout->addWidget(comboBoxText); comboBoxLayout->addWidget(_comboBox); comboBoxLayout->addStretch(); ElaToggleSwitch* comboBoxDisableSwitch = new ElaToggleSwitch(this); ElaText* comboBoxDisableText = new ElaText("禁用", this); comboBoxDisableText->setTextPixelSize(15); connect(comboBoxDisableSwitch, &ElaToggleSwitch::toggled, this, [=](bool checked) { _comboBox->setDisabled(checked); }); comboBoxLayout->addWidget(comboBoxDisableSwitch); comboBoxLayout->addWidget(comboBoxDisableText); comboBoxLayout->addSpacing(10); _multiSelectComboBox = new ElaMultiSelectComboBox(this); QStringList multiComboList{"执念的鱼", "提着灯闯过远洋的甄选", "继续下潜", "无需誓言", "我的心像自沉的旧母舰", "没入深渊", "我曾凝望曾是航向的日出"}; QStringList multiSelectComboList{"执念的鱼", "提着灯闯过远洋的甄选", "无需誓言", "我的心像自沉的旧母舰"}; _multiSelectComboBox->addItems(multiComboList); _multiSelectComboBox->setCurrentSelection(multiSelectComboList); ElaScrollPageArea* multiSelectComboBoxArea = new ElaScrollPageArea(this); QHBoxLayout* multiSelectComboBoxLayout = new QHBoxLayout(multiSelectComboBoxArea); ElaText* multiSelectComboBoxText = new ElaText("ElaMutilSelectComboBox", this); multiSelectComboBoxText->setTextPixelSize(15); multiSelectComboBoxLayout->addWidget(multiSelectComboBoxText); multiSelectComboBoxLayout->addWidget(_multiSelectComboBox); multiSelectComboBoxLayout->addStretch(); ElaToggleSwitch* multiSelectComboBoxDisableSwitch = new ElaToggleSwitch(this); ElaText* multiSelectComboBoxDisableText = new ElaText("禁用", this); multiSelectComboBoxDisableText->setTextPixelSize(15); connect(multiSelectComboBoxDisableSwitch, &ElaToggleSwitch::toggled, this, [=](bool checked) { _multiSelectComboBox->setDisabled(checked); }); multiSelectComboBoxLayout->addWidget(multiSelectComboBoxDisableSwitch); multiSelectComboBoxLayout->addWidget(multiSelectComboBoxDisableText); multiSelectComboBoxLayout->addSpacing(10); _messageButton = new ElaMessageButton("Success", this); _messageButton->setBarTitle("Success"); _messageButton->setBarText("点燃星 亲手点燃黑暗森林的火星 蒙昧初醒 而我却 轻声告别这新生的黎明"); _infoMessageButton = new ElaMessageButton("Info", this); _infoMessageButton->setBarTitle("Information"); _infoMessageButton->setBarText("点燃星 亲手点燃黑暗森林的火星 蒙昧初醒 而我却 轻声告别这新生的黎明"); _infoMessageButton->setMessageMode(ElaMessageBarType::Information); _infoMessageButton->setPositionPolicy(ElaMessageBarType::TopLeft); _warningMessageButton = new ElaMessageButton("Warning", this); _warningMessageButton->setBarTitle("Warning"); _warningMessageButton->setBarText("点燃星 亲手点燃黑暗森林的火星 蒙昧初醒 而我却 轻声告别这新生的黎明"); _warningMessageButton->setMessageMode(ElaMessageBarType::Warning); _warningMessageButton->setPositionPolicy(ElaMessageBarType::BottomLeft); _errorMessageButton = new ElaMessageButton("Error", this); _errorMessageButton->setBarTitle("Error"); _errorMessageButton->setBarText("点燃星 亲手点燃黑暗森林的火星 蒙昧初醒 而我却 轻声告别这新生的黎明"); _errorMessageButton->setMessageMode(ElaMessageBarType::Error); _errorMessageButton->setPositionPolicy(ElaMessageBarType::BottomRight); ElaScrollPageArea* messageButtonArea = new ElaScrollPageArea(this); QHBoxLayout* messageButtonLayout = new QHBoxLayout(messageButtonArea); ElaText* messageButtonText = new ElaText("ElaMessageButton", this); messageButtonText->setTextPixelSize(15); messageButtonLayout->addWidget(messageButtonText); messageButtonLayout->addWidget(_messageButton); messageButtonLayout->addWidget(_infoMessageButton); messageButtonLayout->addWidget(_warningMessageButton); messageButtonLayout->addWidget(_errorMessageButton); messageButtonLayout->addStretch(); ElaToggleSwitch* messageButtonDisableSwitch = new ElaToggleSwitch(this); ElaText* messageButtonDisableText = new ElaText("禁用", this); messageButtonDisableText->setTextPixelSize(15); connect(messageButtonDisableSwitch, &ElaToggleSwitch::toggled, this, [=](bool checked) { _messageButton->setDisabled(checked); _infoMessageButton->setDisabled(checked); _warningMessageButton->setDisabled(checked); _errorMessageButton->setDisabled(checked); }); messageButtonLayout->addWidget(messageButtonDisableSwitch); messageButtonLayout->addWidget(messageButtonDisableText); messageButtonLayout->addSpacing(10); _checkBox = new ElaCheckBox("CheckBox", this); ElaScrollPageArea* checkBoxArea = new ElaScrollPageArea(this); QHBoxLayout* checkBoxLayout = new QHBoxLayout(checkBoxArea); ElaText* checkBoxText = new ElaText("ElacheckBox", this); checkBoxText->setTextPixelSize(15); checkBoxLayout->addWidget(checkBoxText); checkBoxLayout->addWidget(_checkBox); checkBoxLayout->addStretch(); ElaToggleSwitch* checkBoxDisableSwitch = new ElaToggleSwitch(this); ElaText* checkBoxDisableText = new ElaText("禁用", this); checkBoxDisableText->setTextPixelSize(15); connect(checkBoxDisableSwitch, &ElaToggleSwitch::toggled, this, [=](bool checked) { _checkBox->setDisabled(checked); }); checkBoxLayout->addWidget(checkBoxDisableSwitch); checkBoxLayout->addWidget(checkBoxDisableText); checkBoxLayout->addSpacing(10); _spinBox = new ElaSpinBox(this); ElaScrollPageArea* spinBoxArea = new ElaScrollPageArea(this); QHBoxLayout* spinBoxLayout = new QHBoxLayout(spinBoxArea); ElaText* spinBoxText = new ElaText("ElaSpinBox", this); spinBoxText->setTextPixelSize(15); spinBoxLayout->addWidget(spinBoxText); spinBoxLayout->addWidget(_spinBox); spinBoxLayout->addStretch(); _slider = new ElaSlider(this); ElaScrollPageArea* sliderArea = new ElaScrollPageArea(this); QHBoxLayout* sliderLayout = new QHBoxLayout(sliderArea); ElaText* sliderText = new ElaText("ElaSlider", this); sliderText->setTextPixelSize(15); sliderLayout->addWidget(sliderText); sliderLayout->addWidget(_slider); sliderLayout->addStretch(); _radioButton = new ElaRadioButton("RadioButton", this); ElaScrollPageArea* radioButtonArea = new ElaScrollPageArea(this); QHBoxLayout* radioButtonLayout = new QHBoxLayout(radioButtonArea); ElaText* radioButtonText = new ElaText("ElaRadioButton", this); radioButtonText->setTextPixelSize(15); radioButtonLayout->addWidget(radioButtonText); radioButtonLayout->addWidget(_radioButton); radioButtonLayout->addStretch(); _progressBar = new ElaProgressBar(this); _progressBar->setMinimum(0); _progressBar->setMaximum(0); ElaScrollPageArea* progressBarArea = new ElaScrollPageArea(this); QHBoxLayout* progressBarLayout = new QHBoxLayout(progressBarArea); ElaText* progressBarText = new ElaText("ElaProgressBar", this); progressBarText->setTextPixelSize(15); progressBarLayout->addWidget(progressBarText); progressBarLayout->addWidget(_progressBar); progressBarLayout->addStretch(); ElaPlainTextEdit* edit = new ElaPlainTextEdit(this); edit->setPlainText("这是一个ElaPlainTextEdit 暂时放在这里"); QWidget* centralWidget = new QWidget(this); centralWidget->setWindowTitle("ElaBaseComponents"); QVBoxLayout* centerLayout = new QVBoxLayout(centralWidget); centerLayout->addWidget(toggleSwitchArea); centerLayout->addWidget(toggleButtonArea); centerLayout->addWidget(comboBoxArea); centerLayout->addWidget(multiSelectComboBoxArea); centerLayout->addWidget(messageButtonArea); centerLayout->addWidget(checkBoxArea); centerLayout->addWidget(spinBoxArea); centerLayout->addWidget(sliderArea); centerLayout->addWidget(radioButtonArea); centerLayout->addWidget(progressBarArea); centerLayout->addWidget(edit); centerLayout->addStretch(); centerLayout->setContentsMargins(0, 0, 0, 0); addCentralWidget(centralWidget, true, true, 0); ElaText* homeStack1 = new ElaText("HomeStack1", this); QFont font = homeStack1->font(); font.setPixelSize(32); homeStack1->setFont(font); homeStack1->setAlignment(Qt::AlignCenter); homeStack1->setWindowTitle("HomeStack1"); addCentralWidget(homeStack1); ElaText* homeStack2 = new ElaText("HomeStack2", this); homeStack2->setFont(font); homeStack2->setAlignment(Qt::AlignCenter); homeStack2->setWindowTitle("HomeStack2"); addCentralWidget(homeStack2); } T_BaseComponents::~T_BaseComponents() { } void T_BaseComponents::mouseReleaseEvent(QMouseEvent* event) { switch (event->button()) { case Qt::LeftButton: { //ElaMessageBar::success(ElaMessageBarType::TopRight, "Success", "Never Close Your Eyes", 2500); //ElaMessageBar::success(ElaMessageBarType::TopRight, "Success", "Never Close Your Eyes", 1500); break; } case Qt::BackButton: { this->navigation(0); break; } case Qt::ForwardButton: { this->navigation(1); break; } case Qt::MiddleButton: { this->navigation(2); break; } default: { break; } } ElaScrollPage::mouseReleaseEvent(event); }