QT 屏保

12 篇文章 0 订阅

工程目录Application头文件和CPP文件
头文件
#ifndef APPLICATION_H
#define APPLICATION_H

#include
#include
#include “screensaver.h”
class Application: public QApplication
{
public:
Application(int & argc, char ** argv);
bool notify(QObject *, QEvent );
screensaver
send();
private:
screensaver *_screensaver;
};

#endif // APPLICATION_H

cpp文件
#include “application.h”
#include “screensaver.h”
Application::Application(int &argc, char **argv):
QApplication(argc,argv)
{
_screensaver=new screensaver;
}
bool Application::notify(QObject *obj, QEvent e)
{
if(e->type() == QEvent::MouseMove||
e->type() == QEvent::KeyPress||
e->type() ==QEvent::MouseButtonPress )
{
if(_screensaver->timeisactive())
{
_screensaver->timestart();
}
else
{
_screensaver->screensaverstop();
}
}
return QApplication::notify(obj,e);
}
screensaver
Application::send()
{
return _screensaver;
}

screensaver头文件和CPP文件
头文件
#ifndef SCREENSAVER_H
#define SCREENSAVER_H

#include
#include
#include
class screensaver:public QWidget
{
Q_OBJECT
public:
screensaver(QWidget *parent = 0);
~screensaver();
bool timeisactive();
void screensaverstop();
void settime(qint64 minute=1);
// void setpicture(const QString &picturepath=QString::fromUtf8 (":/images/timg1"));
void adddatamark();
void get_data(QString filename,int minute);
private:
QLabel *background;
QTimer *backtimer;
QTimer *datatimer;
qint64 time;
int screenWidthM;
int screenHeightM;

QString time1;

QString Filename =QString::fromUtf8 (":/images/picture1.jpg");  //图片文件路径

int Minute=8; //下

public slots:
void timestart();
void timestop();
void screensaverstart();
void changetime();
};

#endif // SCREENSAVER_H

CPP文件
#include “screensaver.h”
#include
#include
#include
#include
#include

screensaver::screensaver(QWidget *parent)
QWidget(parent)
{
screenWidthM = qApp->desktop()->size().width();
screenHeightM = qApp->desktop()->size().height();
background=new QLabel(this);
background->setScaledContents (true);
//background->setPixmap(QPixmap(screensaverpicture));
background->setGeometry(0,0,screenWidthM,screenHeightM);
// background->raise();

// setpicture();

// adddatamark();
backtimer=new QTimer(this);
datatimer =new QTimer(this);

connect(backtimer,SIGNAL(timeout()),this,SLOT(screensaverstart()));
connect(datatimer,SIGNAL(timeout()),this,SLOT(changetime()));

// settime();
timestart();
}
screensaver::~screensaver()
{
delete backtimer;
delete background;
}
void screensaver::timestart()
{
//1000Minute
backtimer->start(1000
Minute);
}
bool screensaver::timeisactive()
{
return backtimer->isActive();
}
void screensaver::timestop()
{
backtimer->stop();
}

void screensaver::settime(qint64 minute)
{
time=minute6000;
}
/

void screensaver::setpicture(const QString &picturepath)
{
background->setPixmap(QPixmap(picturepath));
}
*/
void screensaver::screensaverstart()//change picture
{
timestop();//Qt::FramelessWindowHint
background->setWindowFlags (Qt::Window| Qt::WindowStaysOnTopHint);
background->setCursor(Qt::BlankCursor);
// background->showFullScreen();
datatimer->start(1000);
}
void screensaver::screensaverstop()//change picture
{
timestart();
background->close();
datatimer->stop();
}

void screensaver::changetime()
{
QDateTime dateTime( QDateTime::currentDateTime() );
time1 = dateTime.toString( “yyyy-MM-dd hh:mm:ss” );
adddatamark();
}
void screensaver::adddatamark()
{
QString filePath = Filename;
QImage image = QPixmap(filePath).toImage();
QPainter painter(&image);
QPen pen = painter.pen();
pen.setColor(QColor(134,134,255));
QFont font = painter.font();
font=QFont(“宋体”,15,1);
font.setBold(true);
painter.setPen(pen);
painter.setFont(font);
painter.drawText( QPoint(80,80),time1 );
image.save(filePath);
background->setPixmap(QPixmap::fromImage(image));
background->showFullScreen();
}

void screensaver::get_data(QString filename, int minute)
{
qDebug()<<filename<<“2222222222”<<minute<<“333333333”;
if(Filename !=filename)
{
Filename =filename;
}
if(Minute != minute)
{
Minute =minute;
}
}

mainwindow函数
头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include
#include “screensaver.h”
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void get(screensaver *f);
void initScreenSecurity();
private slots:

private:
Ui::MainWindow *ui;
screensaver *m_screensaver;
QString filename;
};

#endif // MAINWINDOW_H

CPP文件
#include “mainwindow.h”
#include “ui_mainwindow.h”
#include
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
initScreenSecurity();

 connect(ui->ScreenCbx,&QComboBox::currentTextChanged,this,[=](){initScreenSecurity();});

connect(ui->ScreenModifyPb,&QPushButton::clicked,this,[=](){
   int minute =ui->RestScreeLet->text().toInt();
   QString name =ui->ScreenCbx->currentText();
   filename =QString::fromUtf8 (":/images/%1.jpg").arg(name);
    m_screensaver->get_data(filename,minute);
});

}

MainWindow::~MainWindow()
{
delete ui;
delete m_screensaver;
}

void MainWindow::get(screensaver *f)
{
m_screensaver=f;
}

void MainWindow::initScreenSecurity()
{
QString name =ui->ScreenCbx->currentText();
QString newname =QString::fromUtf8 (":/images/%1.jpg").arg(name);
QImage image(newname);
ui->ScreenShowLal->setPixmap(QPixmap::fromImage(image));
}

main函数
#include “mainwindow.h”
#include
#include “application.h”

int main(int argc, char *argv[])
{
Application a(argc, argv);
MainWindow w;
w.get(a.send());
w.showFullScreen();
w.show();

return a.exec();

}

ui

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值