Professional Documents
Culture Documents
#define WIDGET_H
#include <QWidget>
#include <QLabel>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
public:
Widget(QWidget *parent = nullptr);
~Widget();
int selectedSheet = 1;
int totalSheets = 15;
QString selectedLeftStyle = "#box {background: #F1F2F1; border-top-right-radius: 8px; border-
top: 1px solid rgba(0, 0, 0, 0.2); border-right: 1px solid rgba(0, 0, 0, 0.2); }";
QString selectedRightStyle = "#box {background: #F1F2F1; border-top-left-radius: 8px; border-
top: 1px solid rgba(0, 0, 0, 0.2); border-left: 1px solid rgba(0, 0, 0, 0.2); }";
QString selectedStyle = "#box {background: white;}";
QString nonSelectedLeftStyle = "#box {background: #F1F2F1; border-top: 1px solid rgba(0, 0,
0, 0.2); border-right: 1px solid rgba(0, 0, 0, 0.2);}";
QString nonSelectedRightStyle = "#box {background: #F1F2F1; border-top: 1px solid rgba(0, 0,
0, 0.2); border-left: 1px solid rgba(0, 0, 0, 0.2);}";
QString bottomBoxStyle = "#box {background: white; border-bottom-right-radius: 8px; border-
bottom-left-radius: 8px; border-bottom: 1px solid rgba(0, 0, 0, 0.2); border-left: 1px solid rgba(0, 0,
0, 0.2); border-right: 1px solid rgba(0, 0, 0, 0.2);}";
QList<QLabel*> sheetNames;
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
#include "widget.h"
#include "./ui_widget.h"
#include <QHBoxLayout>
#include <QScrollArea>
#include <QStyleOption>
#include <QPainter>
private:
void paintEvent(QPaintEvent *) override
{
QStyleOption opt;
opt.initFrom (this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
};
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QString style;
sheetNames.push_back (label);
if (i < selectedSheet) {
style = nonSelectedLeftStyle;
if (selectedSheet - i == 1) {
style = selectedLeftStyle;
}
} else if (i > selectedSheet) {
style = nonSelectedRightStyle;
if (i - selectedSheet == 1) {
style = selectedRightStyle;
}
} else if (i == selectedSheet) {
style = selectedStyle;
}
widget->setStyleSheet (style);
hbox->addWidget (widget);
}
QWidget *expandingWidget = new QWidget();
expandingWidget->setObjectName ("box");
expandingWidget->setStyleSheet (nonSelectedRightStyle);
expandingWidget->setSizePolicy (QSizePolicy::Expanding, QSizePolicy::Expanding);
hbox->addWidget (expandingWidget);
Widget::~Widget()
{
delete ui;
}