作了一个 桌面提醒小工具 实现功能:

1.后台托盘运行 双击打开程序

2.输入每日计划,窗口消失时候立即保存

3.可以独立运行

1.后台托盘代码

#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QTextCodec>int main(int argc, char *argv[])
{QApplication a(argc, argv);QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));//解决保存中文乱码问题QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));SystemTrayIcon w;w.show();return a.exec();
}

系统托盘的实现以及主功能

#include "mainwindow.h"
#include <QSystemTrayIcon>
#include "fileutil.h"
SystemTrayIcon::SystemTrayIcon(QWidget *parent) :QMainWindow(parent),ui(new Ui::SystemTrayIcon)
{ui->setupUi(this);ui->textEdit->setText(Fileutil::read());CreatTrayIcon();
}SystemTrayIcon::~SystemTrayIcon()
{delete ui;
}void SystemTrayIcon::CreatTrayMenu()
{miniSizeAction = new QAction("Mini(&N)",this);maxSizeAction = new QAction("Max(&X)",this);restoreWinAction = new QAction("Restore(&R)",this);quitAction = new QAction("Exit(&Q)",this);this->connect(miniSizeAction,SIGNAL(triggered()),this,SLOT(hide()));this->connect(maxSizeAction,SIGNAL(triggered()),this,SLOT(showMaximized()));this->connect(restoreWinAction,SIGNAL(triggered()),this,SLOT(showNormal()));this->connect(quitAction,SIGNAL(triggered()),qApp,SLOT(quit()));myMenu = new QMenu((QWidget*)QApplication::desktop());myMenu->addAction(miniSizeAction);myMenu->addAction(maxSizeAction);myMenu->addAction(restoreWinAction);myMenu->addSeparator();myMenu->addAction(quitAction);
}void SystemTrayIcon::CreatTrayIcon()
{CreatTrayMenu();if (!QSystemTrayIcon::isSystemTrayAvailable())      //判断系统是否支持系统托盘图标{return;}myTrayIcon = new QSystemTrayIcon(this);myTrayIcon->setIcon(QIcon("icon.png"));   //设置图标图片setWindowIcon(QIcon("icon.png"));  //把图片设置到窗口上myTrayIcon->setToolTip("SystemTrayIcon V1.0");    //托盘时,鼠标放上去的提示信息myTrayIcon->showMessage("SystemTrayIcon","Hi,This is my trayIcon",QSystemTrayIcon::Information,10000);myTrayIcon->setContextMenu(myMenu);     //设置托盘上下文菜单myTrayIcon->show();this->connect(myTrayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
}void SystemTrayIcon::iconActivated(QSystemTrayIcon::ActivationReason reason)
{switch(reason){case QSystemTrayIcon::Trigger:break;//如果不添加break 发现单击也可以触发下面的事件case QSystemTrayIcon::DoubleClick:if(isVisible()){hideAndSave();}else{showNormal();}break;case QSystemTrayIcon::MiddleClick:myTrayIcon->showMessage("SystemTrayIcon","Hi,This is my trayIcon",QSystemTrayIcon::Information,10000);break;default:break;}
}
void SystemTrayIcon::hideAndSave()
{hide();// qDebug()<<ui->textEdit->document()->toHtml("UTF-8");//qDebug()<<ui->textEdit->document()->toPlainText();Fileutil::save(ui->textEdit->document()->toHtml("UTF-8"));}
void SystemTrayIcon::closeEvent(QCloseEvent *event)
{if (myTrayIcon->isVisible()){myTrayIcon->showMessage("SystemTrayIcon","Hi,This is my trayIcon",QSystemTrayIcon::Information,5000);hideAndSave();  //最小化event->ignore();}elseevent->accept();
}

文件处理逻辑

#include "fileutil.h"
#include <QFile>
#include <QTextStream>
#include <QDebug>
/**文件操作类 保存 读取文件 这里保存为xml**/
Fileutil::Fileutil()
{}
void Fileutil::save(QString text){QFile file("data.xml");if (!file.open(QIODevice::WriteOnly)) {return;}QTextStream out(&file);// qDebug()<< text;out << text;
}
QString Fileutil::read(){QFile file("data.xml");if (!file.open(QIODevice::ReadOnly | QIODevice::Text))return "";QString str;while(!file.atEnd()) {QByteArray line = file.readLine();str +=  line;}// qDebug()<< str;return str;
}


所有代码

http://dl.vmall.com/c0lt0bpaea

Qt学习 桌面提醒小APP相关推荐

  1. 关于qt学习的一点小记录(1)

    今日为了应付学校作业要求 决定现学qt来制作界面 毕竟c++不像在这方面c#可以那么方便 qt主要依靠信号.槽来实现类似winform中的消息 鉴于要尽快做完,故而没有细看qt 只是大概了解了下界面的 ...

  2. 电脑没有声音一键修复_电脑上有没有好用点的办公提醒小软件?有带声音提醒的桌面便签软件吗...

    经常在电脑上办公的话,恐怕难免在电脑上记录待办事项.只不过,待办事项记下来之后,还需要提醒呢!而问题恰恰出在这里:因为电脑上的记事软件虽然很多,但是提醒工具却很缺乏!那么多记事软件中,好像也就只有Wi ...

  3. Qt学习总结——飞机大战小游戏制作

    Qt学习总结--飞机大战小游戏制作 1. 需求分析 这篇文章写于2020年暑假,完成学校实训项目之后,对自己的项目实践做了一个总结,回顾整个项目的制作过程,同时也复习一下Qt的相关知识,总结项目制作过 ...

  4. QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64)

    QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64) 1.编译方式介绍: 2.动态编译方式打包发布QT程序: 方法一:手动复制 方法二:使用工具 问题& ...

  5. 物联网开发实战:手把手教你开发一款久坐提醒小助手

    大家好,我是机灵鹤. 最近研究开发了一个物联网 IoT 小项目--久坐提醒 / 喝水提醒小助手. 1. 项目介绍 本项目实现了一个久坐提醒和喝水提醒的小助手,在检测到连续工作较长时间之后,会打印纸条, ...

  6. QT学习笔记(摘抄)

    QT学习笔记-1.QT主要的对象 说来惭愧学习c++很长时间了一直没有使用c++开发过软件界面 所以现在想认认真真的学习一个c++图形界面框架库 本来想学习Xwidget但是这个资料不大好找 有啥问题 ...

  7. 如何彻底卸载3dmax2020_「技巧」别再直接在桌面上卸载APP了,这才是手机卸载APP的正确方式!...

    当手机出现卡顿时,我们一般会选择将手机中使用频率不高的APP卸载,以清理出内存空间. 很多人卸载APP的方式是,在手机桌面长按APP图标,然后选择左上角的"x"号,就直接把APP卸 ...

  8. 26个让你沉迷学习无法自拔的app,法考生必备!

    Hello 过儿们 今天厚厚要给大家推荐26个 让你沉迷学习无法自拔的APP! 一.管好你的时间 现阶段,对于大家来说,时间是必要的,距离法考只剩51天,时间少任务重,想要通过法考,如何利用时间是重点 ...

  9. 透明桌面便签APP下载安装操作步骤

    当下很多人的手机系统为安卓系统,虽然安卓系统的手机品牌很多,但是在使用的过程中,很多人仍旧觉得手机自带的功能无法满足日常使用的需求,安卓手机上有很多自带的便签类软件,如果无法满足大家的使用需求,则可以 ...

  10. Qt实现一个连连看小游戏

    Qt 可以做什么? Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部:Qt 除了可以绘制漂亮的界面(包括控件.布局.交互),还包含很多其它功能,比如多线程.访问 ...

最新文章

  1. python 操作fit文件图像
  2. python ljust 库_Python知识精解:str ljust()方法
  3. Xuggler视频处理简介
  4. 2023.TortoiseGit 工具
  5. php 日期时间操作-可算出几天后的时间
  6. 安卓开发3d模型展示源码_玩具模型样品3D打印,让玩具开发无限可能
  7. php数组书写形式,php数组(array)输出的三种形式讲解
  8. js输出100以内的质数
  9. Pano2VR 6 for Mac中文破解版永久激活方法附授权密钥
  10. 资产类别某一类折旧查询
  11. 计算机会说,计算机会有意识吗?你以为就我们才有吗~
  12. Android更换皮肤解决方案
  13. @hapi/joi@17.1.0和express-jwt使用问题
  14. 计算机文件云同步,电脑文件夹同步
  15. 关于SpringMVC的XML配置步骤
  16. 2022开源PHP留言反馈管理系统 v2.0
  17. 提取lbp特征java代码_目标检测的图像特征提取之_LBP特征
  18. Arduino ESP32 基于Web服务端SD文件管理系统完善
  19. W3cshool的html表单标签和元素内容思维导图笔记整理
  20. 计算机应用考什么,计算机应用自考本科都考哪些科目?

热门文章

  1. 关于Error instantiating class com.zzkk.model.User with invalid types
  2. c语言程序设计李玲玲,c程序设计基础ppt.ppt
  3. 中兴在海外发布 Blade V30 系列手机,包含标准版以及 Blade V30 Vita 两款产品
  4. DonkeyCar [02] - 软件配置 - 上位机(windows)
  5. 基于Windows和linux下开源缺陷跟踪系统Mantis安装和安装配置手册
  6. tripledes java_Java加密算法Triple DES详解
  7. 非平衡数据集的评价指标
  8. 拓展:简化接线_simulink子系统的搭建和封装
  9. 学html游戏,HTML基础知识学习【第二篇 】
  10. 你确定不了解下 2021 年 Web 开发的趋势嘛