主要功能可用
This commit is contained in:
@@ -18,18 +18,26 @@ int TransportPosMaxY = 0;
|
||||
|
||||
int OldRollerPos[2][2]={{0,0},{0,0}};
|
||||
QImage Brush[2];
|
||||
|
||||
QElapsedTimer TmpTime;
|
||||
P01_MianPage::P01_MianPage(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::P01_MianPage)
|
||||
ui(new Ui::P01_MianPage),
|
||||
mObjLoader(nullptr),
|
||||
m_workerThread(nullptr),
|
||||
m_workerLoader(nullptr),
|
||||
m_loadingStep(0),
|
||||
UIRefresh_Timer(nullptr),
|
||||
TrailRefresh_Timer(nullptr)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
QTimer::singleShot(10, this, &P01_MianPage::PageInit);
|
||||
|
||||
// QTimer::singleShot(1000, this, &P01_MianPage::Show3D);
|
||||
}
|
||||
|
||||
qint64 JgTime;
|
||||
void P01_MianPage::PageInit()
|
||||
{
|
||||
TmpTime.start();
|
||||
QPixmap pix(":/Icos/Icos/Sursor.png");
|
||||
QCursor custom(pix, pix.width()/2, pix.height()/2);
|
||||
setCursor(custom);
|
||||
@@ -45,19 +53,63 @@ void P01_MianPage::PageInit()
|
||||
ui->Gif_Radar->show();
|
||||
|
||||
//所用定时器初始化
|
||||
QTimer* UIRefresh_Timer = new QTimer(this);
|
||||
UIRefresh_Timer = new QTimer(this);
|
||||
connect(UIRefresh_Timer, &QTimer::timeout, this, &P01_MianPage::UIRefreshTimeOut);
|
||||
UIRefresh_Timer->setInterval(100); // 设置定时器间隔为 1000 毫秒(1 秒)
|
||||
UIRefresh_Timer->start();
|
||||
|
||||
//所用定时器初始化
|
||||
QTimer* TrailRefresh_Timer = new QTimer(this);
|
||||
TrailRefresh_Timer = new QTimer(this);
|
||||
connect(TrailRefresh_Timer, &QTimer::timeout, this, &P01_MianPage::TrailRefreshTimeOut);
|
||||
TrailRefresh_Timer->setInterval(1000); // 设置定时器间隔为 1000 毫秒(1 秒)
|
||||
TrailRefresh_Timer->start();
|
||||
qDebug()<<"初始化执行完成后,消耗时间"<<TmpTime.elapsed();
|
||||
JgTime = TmpTime.elapsed();
|
||||
}
|
||||
P01_MianPage::~P01_MianPage()
|
||||
{
|
||||
// 安全清理线程和资源
|
||||
if (m_workerThread && m_workerThread->isRunning()) {
|
||||
m_workerThread->quit();
|
||||
m_workerThread->wait(1000); // 等待1秒
|
||||
if (m_workerThread->isRunning()) {
|
||||
m_workerThread->terminate(); // 强制终止
|
||||
}
|
||||
m_workerThread->deleteLater();
|
||||
m_workerThread = nullptr;
|
||||
}
|
||||
|
||||
// 清理ObjLoader对象
|
||||
if (mObjLoader) {
|
||||
mObjLoader->deleteLater();
|
||||
mObjLoader = nullptr;
|
||||
}
|
||||
|
||||
if (m_workerLoader) {
|
||||
m_workerLoader->deleteLater();
|
||||
m_workerLoader = nullptr;
|
||||
}
|
||||
|
||||
// 清理PageInit中创建的定时器
|
||||
if (UIRefresh_Timer) {
|
||||
UIRefresh_Timer->stop();
|
||||
UIRefresh_Timer->deleteLater();
|
||||
UIRefresh_Timer = nullptr;
|
||||
}
|
||||
|
||||
if (TrailRefresh_Timer) {
|
||||
TrailRefresh_Timer->stop();
|
||||
TrailRefresh_Timer->deleteLater();
|
||||
TrailRefresh_Timer = nullptr;
|
||||
}
|
||||
|
||||
// 清理QMovie对象
|
||||
if (ui->Gif_Radar->movie()) {
|
||||
ui->Gif_Radar->movie()->stop();
|
||||
delete ui->Gif_Radar->movie();
|
||||
ui->Gif_Radar->setMovie(nullptr);
|
||||
}
|
||||
|
||||
delete ui;
|
||||
}
|
||||
void P01_MianPage::Show3D()
|
||||
@@ -86,9 +138,9 @@ void P01_MianPage::Show3D()
|
||||
m_workerLoader = new ObjLoader();
|
||||
m_workerLoader->moveToThread(m_workerThread);
|
||||
|
||||
// 连接预处理完成信号(确保ObjLoader类中已声明preprocessDone信号)
|
||||
connect(m_workerLoader, SIGNAL(preprocessDone(QString, QVector3D, float)),
|
||||
this, SLOT(onPreprocessResult(QString, QVector3D, float)));
|
||||
// 连接预处理完成信号(使用现代信号槽语法)
|
||||
connect(m_workerLoader, &ObjLoader::preprocessDone,
|
||||
this, &P01_MianPage::onPreprocessResult);
|
||||
|
||||
// 处理单个设备预处理完成
|
||||
connect(this, &P01_MianPage::preprocessFinished, this, &P01_MianPage::onPreprocessFinished);
|
||||
@@ -104,11 +156,21 @@ void P01_MianPage::Show3D()
|
||||
// 所有设备加载完成
|
||||
connect(this, &P01_MianPage::allDevicesLoaded, this, [=]() {
|
||||
// 清理工作线程
|
||||
m_workerThread->quit();
|
||||
m_workerThread->wait();
|
||||
m_workerLoader->deleteLater();
|
||||
|
||||
if (m_workerThread && m_workerThread->isRunning()) {
|
||||
m_workerThread->quit();
|
||||
m_workerThread->wait(1000); // 等待1秒
|
||||
if (m_workerThread->isRunning()) {
|
||||
m_workerThread->terminate(); // 强制终止
|
||||
}
|
||||
m_workerThread->deleteLater();
|
||||
m_workerThread = nullptr;
|
||||
}
|
||||
|
||||
// 清理工作加载器
|
||||
if (m_workerLoader) {
|
||||
m_workerLoader->deleteLater();
|
||||
m_workerLoader = nullptr;
|
||||
}
|
||||
|
||||
// 启动旋转定时器
|
||||
QTimer *RotateDev_Timer = new QTimer(this);
|
||||
@@ -385,10 +447,10 @@ void P01_MianPage::ProgressBar_LCD(QProgressBar *QPB,QLCDNumber *QLCD,QString No
|
||||
QLCD->display(QString::number(Value,'f',2));
|
||||
}
|
||||
void P01_MianPage::PB_Refresh(QString Dev){
|
||||
|
||||
uint32_t PB_Group1 = getNodeValue("PB_Curr_"+Dev+".PageGroup1") .toUInt();
|
||||
uint32_t PB_Group2 = getNodeValue("PB_Curr_"+Dev+".PageGroup2") .toUInt();
|
||||
uint32_t PB_MotorTemp = getNodeValue("PB_Temp_"+Dev+".PageGroup") .toUInt();
|
||||
|
||||
uint16_t PercentageCurU = static_cast<uint16_t>(PB_Group1 >> 16); // 高 16 位
|
||||
uint16_t PercentageCurV = static_cast<uint16_t>(PB_Group1 & 0xFFFF);// 低 16 位
|
||||
uint16_t PercentageCurW = static_cast<uint16_t>(PB_Group2 >> 16); // 高 16 位
|
||||
|
||||
Reference in New Issue
Block a user