闲暇时,写的一个Qt简单桌面日程工具

前几天,因为工作关系,由于鄙人交懒,记忆较差,所以便向同事要一款日程管理软件。可以内嵌在桌面中的,同事便推荐了一款蓝果软件,便下载了一个,试了试还不错。刚好,他的原理比较简单,自己便用qt自己做了一个玩。其实其软件整个思路挺简单的:

一、步骤:

1、将要写的内容写在一张图片上

2、再将图片设置为壁纸。

3、OK。

下图为下载的蓝果软件主界面


下图为鄙人自己做的,有些丑。。。呵呵



二、出现的一些未解决问题

1、在配置文件中中文读取。不难解决

2、在不同图片中字体的大小不同,如上图中字体要达到999写在图片上才能看的见,为明白。。。求解

3、只是实现了bmp格式的,其他格式有时间再完成。

三、主要部分代码

其实代码很简单,就只显示主要代码了。有兴趣的童鞋自己好好思考怎么改善的更好哈。


QSettings appSettings("HKEY_CURRENT_USER\\Control Panel\\Desktop",QSettings::NativeFormat);
appSettings.setValue ("WallpaperStyle", "2");//ping pu
直接改注册表,来将壁纸属性设为拉伸,有api接口可以去完成,但是太麻烦,没有这样直接

QString src = des;
QSettings appSettingss("HKEY_CURRENT_USER\\Control Panel\\Desktop",QSettings::NativeFormat);
appSettingss.setValue ("Wallpaper", src);//xie ru zu ce biao


QByteArray ba = src.toAscii();
int www = SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0,(void*)ba.data(),SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);//set backgroud

设置壁纸,可以去查SystemParametersInfoA这个接口

在图片上添加文字内容

QImage image = QPixmap(filename).toImage();
QPainter painter(&image);
painter.setCompositionMode(QPainter::CompositionMode_Source);
QPen pen = painter.pen();
pen.setColor(color);
painter.setPen(pen);
painter.setFont(font);

QString str = ui.textEdit->toPlainText();
QRectF r = QRectF(QRect(left, top, 10000, 10000));
painter.drawText(r,/* Qt::AlignCenter,*/ str);
QFile::remove(des);
if(!image.save(des, "bmp"))
{
QMessageBox msgBox;
msgBox.setText(tr("转换失败,请重试!!!"));
msgBox.exec();
}


整个软件的核心部分就是上面2步,代码太简单了,就不传了,时间仓促,就这样了吧。那几个问题知道的可以给我说说啊。希望对有兴趣的童鞋有帮助。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值