12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #include "EXDataViewDelegate.h"
- #include <QHBoxLayout>
- #include <QLabel>
- #include <QPushButton>
- #include <QButtonGroup>
- #include <QDebug>
- SchemeBar::SchemeBar(const QString &lLabel, const QString &rLabel, const QStringList &vlist, QWidget *parent)
- : QDialog(parent), leftLabel(lLabel), rightLabel(rLabel), barValueList(vlist)
- {
- setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint);
- QHBoxLayout *hlay = new QHBoxLayout;
- QLabel *l = new QLabel(leftLabel);
- QLabel *r = new QLabel(rightLabel);
- QHBoxLayout *centerLay = new QHBoxLayout;
- QButtonGroup *btnGroup = new QButtonGroup(this);
- for (QString &v : barValueList) {
- QPushButton *btn = new QPushButton(v);
- centerLay->addWidget(btn);
- btnGroup->addButton(btn);
- if (v.startsWith("1/")) {
- btn->setText(v.split("/")[1]);
- } else {
- btn->setText(v);
- }
- btn->setProperty("number", v);
- }
- connect(btnGroup, static_cast<void (QButtonGroup::*)(QAbstractButton *)>(&QButtonGroup::buttonClicked), this,
- &SchemeBar::barClicked);
- hlay->addWidget(l);
- hlay->addLayout(centerLay);
- hlay->addWidget(r);
- setLayout(hlay);
- }
- void SchemeBar::barClicked(QAbstractButton *btn)
- {
- emit setValue(btn->property("number").toString());
- this->close();
- }
|