123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- #include "SpeedAdjPage.h"
- #include "ui_SpeedAdjPage.h"
- #include <QMouseEvent>
- #include <QRegularExpression>
- #include <QPropertyAnimation>
- #include <QScreen>
- SpeedAdjPage::SpeedAdjPage(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::SpeedAdjPage)
- {
- ui->setupUi(this);
- Init();
- }
- SpeedAdjPage::~SpeedAdjPage()
- {
- qApp->removeEventFilter(this);
- delete ui;
- }
- void SpeedAdjPage::updateDefVal(const ST_DEF_VAL& val)
- {
- QString strTip = tr("Mode:", "模组:");
- strTip += val.strMode;
- strTip += tr("Axis:(","轴:(");
- for (auto&a: val.vecPos)
- {
- strTip += a.AxisType.c_str();
- strTip += ":";
- QString s = QString::number(a.pos, 'f', 2);
- }
- strTip += ")";
- //ui->speedTitleLabel->setText(strTip);
- }
- void SpeedAdjPage::Init()
- {
- qApp->installEventFilter(this);
- setWindowFlag(Qt::FramelessWindowHint);
- //setFocusPolicy(Qt::StrongFocus);
- // 绑定按钮
- QList<QPushButton*> listPBut;
- listPBut.push_back(ui->subBut_1);
- listPBut.push_back(ui->addBut_1);
- listPBut.push_back(ui->subBut_10);
- listPBut.push_back(ui->addBut_10);
- listPBut.push_back(ui->subBut_100);
- listPBut.push_back(ui->addBut_100);
- listPBut.push_back(ui->subBut_1000);
- listPBut.push_back(ui->addBut_1000);
- listPBut.push_back(ui->subBut_10000);
- listPBut.push_back(ui->addBut_10000);
- listPBut.push_back(ui->subBut_100000);
- listPBut.push_back(ui->addBut_100000);
- // 连接每个按钮的clicked信号
- for (QPushButton* pBut : listPBut)
- {
- connect(pBut, &QPushButton::clicked, [this, pBut]()
- {
- QRegularExpression re("^(sub|add)But_(\\d+)$");
- QRegularExpressionMatch match = re.match(pBut->objectName());
- if (match.hasMatch())
- {
- QString prefix = match.captured(1);
- int num = match.captured(2).toInt();
- int value = (prefix == "sub") ? -num : num;
- m_nVal = value; // 更新成员变量
- emit CloseWnd(m_nVal);
- }
- });
- }
- }
- void SpeedAdjPage::mousePressEvent(QMouseEvent* event)
- {
- if (event->button() == Qt::LeftButton)
- {
- m_mousePressPosition = event->globalPos();
- m_windowPosition = this->frameGeometry().topLeft();
- }
- }
- void SpeedAdjPage::mouseMoveEvent(QMouseEvent* event)
- {
- if (event->buttons() & Qt::LeftButton)
- {
- QPoint delta = event->globalPos() - m_mousePressPosition;
- this->move(m_windowPosition + delta);
- }
- }
- bool SpeedAdjPage::eventFilter(QObject* obj, QEvent* event)
- {
- if (event->type() == QEvent::MouseButtonPress)
- {
- QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(event);
- QPoint globalPos = mouseEvent->globalPos();
- QRect dialogFrame = this->frameGeometry();
- if (this->isVisible() && !dialogFrame.contains(globalPos))
- {
- this->close();
- }
- }
- return false;
- }
- void SpeedAdjPage::changeEvent(QEvent* event)
- {
- if (event->type() == QEvent::WindowActivate)
- {
- // 窗口被激活
- //qDebug() << "Main window is now active";
- }
- else if (event->type() == QEvent::WindowDeactivate)
- {
- // 窗口失去激活
- //qDebug() << "Main window is no longer active";
- }
- QMainWindow::changeEvent(event);
- }
- void SpeedAdjPage::on_closeBut_clicked()
- {
- this->close();
- }
|