Qt学习 桌面提醒小APP
作了一个 桌面提醒小工具 实现功能:
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相关推荐
- 关于qt学习的一点小记录(1)
今日为了应付学校作业要求 决定现学qt来制作界面 毕竟c++不像在这方面c#可以那么方便 qt主要依靠信号.槽来实现类似winform中的消息 鉴于要尽快做完,故而没有细看qt 只是大概了解了下界面的 ...
- 电脑没有声音一键修复_电脑上有没有好用点的办公提醒小软件?有带声音提醒的桌面便签软件吗...
经常在电脑上办公的话,恐怕难免在电脑上记录待办事项.只不过,待办事项记下来之后,还需要提醒呢!而问题恰恰出在这里:因为电脑上的记事软件虽然很多,但是提醒工具却很缺乏!那么多记事软件中,好像也就只有Wi ...
- Qt学习总结——飞机大战小游戏制作
Qt学习总结--飞机大战小游戏制作 1. 需求分析 这篇文章写于2020年暑假,完成学校实训项目之后,对自己的项目实践做了一个总结,回顾整个项目的制作过程,同时也复习一下Qt的相关知识,总结项目制作过 ...
- QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64)
QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64) 1.编译方式介绍: 2.动态编译方式打包发布QT程序: 方法一:手动复制 方法二:使用工具 问题& ...
- 物联网开发实战:手把手教你开发一款久坐提醒小助手
大家好,我是机灵鹤. 最近研究开发了一个物联网 IoT 小项目--久坐提醒 / 喝水提醒小助手. 1. 项目介绍 本项目实现了一个久坐提醒和喝水提醒的小助手,在检测到连续工作较长时间之后,会打印纸条, ...
- QT学习笔记(摘抄)
QT学习笔记-1.QT主要的对象 说来惭愧学习c++很长时间了一直没有使用c++开发过软件界面 所以现在想认认真真的学习一个c++图形界面框架库 本来想学习Xwidget但是这个资料不大好找 有啥问题 ...
- 如何彻底卸载3dmax2020_「技巧」别再直接在桌面上卸载APP了,这才是手机卸载APP的正确方式!...
当手机出现卡顿时,我们一般会选择将手机中使用频率不高的APP卸载,以清理出内存空间. 很多人卸载APP的方式是,在手机桌面长按APP图标,然后选择左上角的"x"号,就直接把APP卸 ...
- 26个让你沉迷学习无法自拔的app,法考生必备!
Hello 过儿们 今天厚厚要给大家推荐26个 让你沉迷学习无法自拔的APP! 一.管好你的时间 现阶段,对于大家来说,时间是必要的,距离法考只剩51天,时间少任务重,想要通过法考,如何利用时间是重点 ...
- 透明桌面便签APP下载安装操作步骤
当下很多人的手机系统为安卓系统,虽然安卓系统的手机品牌很多,但是在使用的过程中,很多人仍旧觉得手机自带的功能无法满足日常使用的需求,安卓手机上有很多自带的便签类软件,如果无法满足大家的使用需求,则可以 ...
- Qt实现一个连连看小游戏
Qt 可以做什么? Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部:Qt 除了可以绘制漂亮的界面(包括控件.布局.交互),还包含很多其它功能,比如多线程.访问 ...
最新文章
- python 操作fit文件图像
- python ljust 库_Python知识精解:str ljust()方法
- Xuggler视频处理简介
- 2023.TortoiseGit 工具
- php 日期时间操作-可算出几天后的时间
- 安卓开发3d模型展示源码_玩具模型样品3D打印,让玩具开发无限可能
- php数组书写形式,php数组(array)输出的三种形式讲解
- js输出100以内的质数
- Pano2VR 6 for Mac中文破解版永久激活方法附授权密钥
- 资产类别某一类折旧查询
- 计算机会说,计算机会有意识吗?你以为就我们才有吗~
- Android更换皮肤解决方案
- @hapi/joi@17.1.0和express-jwt使用问题
- 计算机文件云同步,电脑文件夹同步
- 关于SpringMVC的XML配置步骤
- 2022开源PHP留言反馈管理系统 v2.0
- 提取lbp特征java代码_目标检测的图像特征提取之_LBP特征
- Arduino ESP32 基于Web服务端SD文件管理系统完善
- W3cshool的html表单标签和元素内容思维导图笔记整理
- 计算机应用考什么,计算机应用自考本科都考哪些科目?
热门文章
- 关于Error instantiating class com.zzkk.model.User with invalid types
- c语言程序设计李玲玲,c程序设计基础ppt.ppt
- 中兴在海外发布 Blade V30 系列手机,包含标准版以及 Blade V30 Vita 两款产品
- DonkeyCar [02] - 软件配置 - 上位机(windows)
- 基于Windows和linux下开源缺陷跟踪系统Mantis安装和安装配置手册
- tripledes java_Java加密算法Triple DES详解
- 非平衡数据集的评价指标
- 拓展:简化接线_simulink子系统的搭建和封装
- 学html游戏,HTML基础知识学习【第二篇 】
- 你确定不了解下 2021 年 Web 开发的趋势嘛