**
基于qt5.14.2 qml实现锁屏以及解锁
**
参考了其他博主的文章,然后集成到一起了。直接贴源码了。
globalapp.h****
#pragma once
#include
#include
#include
class CGlobalApp : public QApplication
{
Q_OBJECT
public:
CGlobalApp(int& argc, char** argv);
~CGlobalApp();
bool notify(QObject*, QEvent*);
void SetLockWidget(QObject* o);
public slots:
void OnTimeOut();
void OnUnlock();
private:
QTimer mTimer;
bool bLocked;
QObject* mLockWidget;
};
globalapp.cpp****
#include “globalapp.h”
#include
-
CGlobalApp::CGlobalApp(int& argc, char** argv)
-
QApplication(argc,argv)
{
mLockWidget = nullptr;
bLocked = false;
connect(&mTimer, SIGNAL(timeout()), this, SLOT(OnTimeOut()));
mTimer.setInterval(10000);
}
CGlobalApp::~CGlobalApp()
{
}
void CGlobalApp::OnTimeOut()
{
bLocked = true;
qDebug() << “screen locked”;
if (mLockWidget != nullptr && !((QQuickView*)mLockWidget)->isVisible())
{
((QQuickView*)mLockWidget)->show();
}
}
void CGlobalApp::OnUnlock()
{
bLocked = false;