285 lines
12 KiB
C++
285 lines
12 KiB
C++
#include "T_BaseComponents.h"
|
|
|
|
#include <QHBoxLayout>
|
|
#include <QVBoxLayout>
|
|
|
|
#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);
|
|
}
|