fix: Increase the auto locate animation frame rate.
This commit is contained in:
@@ -9,6 +9,8 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
const int BLINK_FREQUENCY = 18;
|
const int BLINK_FREQUENCY = 18;
|
||||||
|
const int XYWIDGET_WIDTH = 655;
|
||||||
|
const int XYWIDGET_HEIGHT = 655;
|
||||||
}
|
}
|
||||||
|
|
||||||
CoordinateXYWidget::CoordinateXYWidget(QWidget* aParent)
|
CoordinateXYWidget::CoordinateXYWidget(QWidget* aParent)
|
||||||
@@ -18,13 +20,15 @@ CoordinateXYWidget::CoordinateXYWidget(QWidget* aParent)
|
|||||||
, mBlinking(false)
|
, mBlinking(false)
|
||||||
, mBlinkFrequency(0)
|
, mBlinkFrequency(0)
|
||||||
, mBlinkPoint(QPointF())
|
, mBlinkPoint(QPointF())
|
||||||
|
, mBuffer()
|
||||||
, mStopGradientEnd(0.05)
|
, mStopGradientEnd(0.05)
|
||||||
{
|
{
|
||||||
setFixedSize(655,655);
|
setFixedSize(XYWIDGET_WIDTH, XYWIDGET_HEIGHT);
|
||||||
connect(ScanProcessSequence::getInstance(), &ScanProcessSequence::startAutoLocate, this, &CoordinateXYWidget::startFlash);
|
connect(ScanProcessSequence::getInstance(), &ScanProcessSequence::startAutoLocate, this, &CoordinateXYWidget::startFlash);
|
||||||
connect(ScanProcessSequence::getInstance(), &ScanProcessSequence::stopAutoLocate, this, &CoordinateXYWidget::stopFlash);
|
connect(ScanProcessSequence::getInstance(), &ScanProcessSequence::stopAutoLocate, this, &CoordinateXYWidget::stopFlash);
|
||||||
connect(ScanProcessSequence::getInstance(), &ScanProcessSequence::quitAutoLocate, this, &CoordinateXYWidget::quit);
|
connect(ScanProcessSequence::getInstance(), &ScanProcessSequence::quitAutoLocate, this, &CoordinateXYWidget::quit);
|
||||||
connect(ScanProcessSequence::getInstance(), &ScanProcessSequence::autoLocateXYUpdated, this, &CoordinateXYWidget::setBlinkPoint);
|
connect(ScanProcessSequence::getInstance(), &ScanProcessSequence::autoLocateXYUpdated, this, &CoordinateXYWidget::setBlinkPoint);
|
||||||
|
initBuffer();
|
||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,6 +37,32 @@ CoordinateXYWidget::~CoordinateXYWidget()
|
|||||||
mTimer->stop();
|
mTimer->stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CoordinateXYWidget::initBuffer()
|
||||||
|
{
|
||||||
|
QPen pen;
|
||||||
|
pen.setWidth(2);
|
||||||
|
pen.setColor(Qt::gray);
|
||||||
|
pen.setStyle(Qt::SolidLine);
|
||||||
|
for(int angle=5; angle<=365; angle+=5)
|
||||||
|
{
|
||||||
|
mBuffer[angle] = QPixmap(XYWIDGET_WIDTH, XYWIDGET_HEIGHT);
|
||||||
|
mBuffer[angle].fill(Qt::transparent);
|
||||||
|
QPainter bufferPainter(&mBuffer[angle]);
|
||||||
|
bufferPainter.setRenderHint(QPainter::Antialiasing);
|
||||||
|
bufferPainter.setPen(pen);
|
||||||
|
|
||||||
|
int w = XYWIDGET_WIDTH - 5;
|
||||||
|
int h = XYWIDGET_HEIGHT - 5;
|
||||||
|
QConicalGradient coniGrad(w/2,h/2,360-angle);
|
||||||
|
coniGrad.setColorAt(0,QColor(0,0,0,255));
|
||||||
|
coniGrad.setColorAt(0.05,QColor(0,170,255,255));
|
||||||
|
coniGrad.setColorAt(1,QColor(0,0,0,255));
|
||||||
|
coniGrad.setSpread(QGradient::ReflectSpread);
|
||||||
|
bufferPainter.setBrush(coniGrad);
|
||||||
|
bufferPainter.drawEllipse(this->rect().center(),w/2,h/2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CoordinateXYWidget::paintEvent(QPaintEvent *event)
|
void CoordinateXYWidget::paintEvent(QPaintEvent *event)
|
||||||
{
|
{
|
||||||
Q_UNUSED(event);
|
Q_UNUSED(event);
|
||||||
@@ -43,23 +73,28 @@ void CoordinateXYWidget::paintEvent(QPaintEvent *event)
|
|||||||
QPoint center = this->rect().center();
|
QPoint center = this->rect().center();
|
||||||
QRect rect(center,QPoint(w,h));
|
QRect rect(center,QPoint(w,h));
|
||||||
p.setRenderHint(QPainter::Antialiasing,true);
|
p.setRenderHint(QPainter::Antialiasing,true);
|
||||||
|
|
||||||
|
|
||||||
QConicalGradient coniGrad(w/2,h/2,360-mAngle);
|
|
||||||
coniGrad.setColorAt(0,QColor(0,0,0,255));
|
|
||||||
coniGrad.setColorAt(0.05,QColor(0,170,255,255));
|
|
||||||
coniGrad.setColorAt(mStopGradientEnd,QColor(0,0,0,255));
|
|
||||||
coniGrad.setColorAt(1,QColor(0,0,0,255));
|
|
||||||
coniGrad.setSpread(QGradient::ReflectSpread);
|
|
||||||
p.setBrush(coniGrad);
|
|
||||||
|
|
||||||
QPen pen;
|
QPen pen;
|
||||||
pen.setWidth(2);
|
pen.setWidth(2);
|
||||||
pen.setColor(Qt::gray);
|
pen.setColor(Qt::gray);
|
||||||
pen.setStyle(Qt::SolidLine);
|
pen.setStyle(Qt::SolidLine);
|
||||||
p.setPen(pen);
|
p.setPen(pen);
|
||||||
|
|
||||||
p.drawEllipse(center,w/2,h/2);
|
if(mStopGradientEnd < 1)
|
||||||
|
{
|
||||||
|
QConicalGradient coniGrad(w/2,h/2,360-mAngle);
|
||||||
|
coniGrad.setColorAt(0,QColor(0,0,0,255));
|
||||||
|
coniGrad.setColorAt(0.05,QColor(0,170,255,255));
|
||||||
|
coniGrad.setColorAt(mStopGradientEnd,QColor(0,0,0,255));
|
||||||
|
coniGrad.setColorAt(1,QColor(0,0,0,255));
|
||||||
|
coniGrad.setSpread(QGradient::ReflectSpread);
|
||||||
|
p.setBrush(coniGrad);
|
||||||
|
p.drawEllipse(center,w/2,h/2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
p.drawPixmap(0,0, mBuffer[mAngle]);
|
||||||
|
}
|
||||||
|
p.setBrush(Qt::NoBrush);
|
||||||
p.drawEllipse(center,w/2 - 100,h/2 - 100);
|
p.drawEllipse(center,w/2 - 100,h/2 - 100);
|
||||||
pen.setColor(QColor(0, 224, 255, 255).lighter());
|
pen.setColor(QColor(0, 224, 255, 255).lighter());
|
||||||
p.setPen(pen);
|
p.setPen(pen);
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#define COORDINATEXYWIDGET_H
|
#define COORDINATEXYWIDGET_H
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
#include <QMap>
|
||||||
|
|
||||||
class QTimer;
|
class QTimer;
|
||||||
|
|
||||||
@@ -22,14 +23,15 @@ protected:
|
|||||||
private:
|
private:
|
||||||
void updateFlash();
|
void updateFlash();
|
||||||
void updateStopFlash();
|
void updateStopFlash();
|
||||||
|
void initBuffer();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int mAngle;
|
int mAngle;
|
||||||
QTimer* mTimer;
|
QTimer* mTimer;
|
||||||
bool mBlinking;
|
bool mBlinking;
|
||||||
int mBlinkFrequency;
|
int mBlinkFrequency;
|
||||||
int mBlinkPointX;
|
|
||||||
QPointF mBlinkPoint;
|
QPointF mBlinkPoint;
|
||||||
|
QMap<int, QPixmap> mBuffer;
|
||||||
|
|
||||||
double mStopGradientEnd;
|
double mStopGradientEnd;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ MainWindow::MainWindow(QWidget* aParent)
|
|||||||
, mTabWidget(new QTabWidget(this))
|
, mTabWidget(new QTabWidget(this))
|
||||||
, mInitializWidget(new InitializeWidget(this))
|
, mInitializWidget(new InitializeWidget(this))
|
||||||
, mShutdownWidget(new ShutdownWidget(nullptr))
|
, mShutdownWidget(new ShutdownWidget(nullptr))
|
||||||
|
, mScanPage(nullptr)
|
||||||
, mTabInited(false)
|
, mTabInited(false)
|
||||||
{
|
{
|
||||||
mUI->setupUi(this);
|
mUI->setupUi(this);
|
||||||
@@ -112,6 +113,9 @@ MainWindow::MainWindow(QWidget* aParent)
|
|||||||
|
|
||||||
GUIErrorHandle::Default()->init();
|
GUIErrorHandle::Default()->init();
|
||||||
QApplication::setActiveWindow(centralWidget());
|
QApplication::setActiveWindow(centralWidget());
|
||||||
|
//初始化耗时,提前初始化
|
||||||
|
mScanPage = new ScanFormWidget(this);
|
||||||
|
mScanPage->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
@@ -188,8 +192,8 @@ void MainWindow::initializeTabWidget()
|
|||||||
mTabWidget->insertTab(0,verifyForm, tr("Recon"));
|
mTabWidget->insertTab(0,verifyForm, tr("Recon"));
|
||||||
auto selectForm = new SelectFormWidget(this);
|
auto selectForm = new SelectFormWidget(this);
|
||||||
mTabWidget->insertTab(0,selectForm, tr("Select"));
|
mTabWidget->insertTab(0,selectForm, tr("Select"));
|
||||||
auto scanForm = new ScanFormWidget(this);
|
//auto scanForm = new ScanFormWidget(this);
|
||||||
mTabWidget->insertTab(0,scanForm, tr("Scan"));
|
mTabWidget->insertTab(0,mScanPage, tr("Scan"));
|
||||||
|
|
||||||
mTabWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
mTabWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ private:
|
|||||||
QTabWidget* mTabWidget;
|
QTabWidget* mTabWidget;
|
||||||
InitializeWidget* mInitializWidget;
|
InitializeWidget* mInitializWidget;
|
||||||
ShutdownWidget* mShutdownWidget;
|
ShutdownWidget* mShutdownWidget;
|
||||||
|
QWidget* mScanPage;
|
||||||
|
|
||||||
bool mTabInited;
|
bool mTabInited;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user