Qt学习 桌面提醒小APP
来源:互联网 发布:淘宝店多少钱 编辑:程序博客网 时间:2024/05/02 14:06
作了一个 桌面提醒小工具 实现功能:
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(); } else event->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
- 【Android学习笔记】App Widget 桌面小插件
- Qt 获取当前桌面 app路径
- Android 桌面小部件-App Widgets
- 安卓桌面小控件App Widget
- android -- 桌面小控件App Widgets
- 【android开发】桌面小挂件( APP Widgets )
- android基础进阶一:App widget的学习(桌面小部件)
- 小提醒
- 桌面提醒功能
- HTML5 Notifications 桌面提醒
- Chrome桌面提醒功能
- Chrome桌面提醒功能
- 桌面右下角消息提醒
- QT学习小技巧
- QT学习小技巧
- QT学习小技巧
- QT学习小知识
- MVC in php -- 路由(Router)
- 多行输入框
- 最近收集的jdk命名规则
- LINUX 如何查看版本及内核版本
- 内联函数并非由自己制定的环境 WIN7+VS2010
- Qt学习 桌面提醒小APP
- 交叉编译ARM版 Qt (qt-everywhere-opensource-src-4.8.4)
- ora-err:PLS-00904
- c,c++里面,头文件里面的ifndef /define/endif的作用
- 在 VS2008 下操作 Excel 的方法总结
- iPhone和Android的控件对比:
- glib学习1-一个简单的例子与g_log
- hibernate中查询排序
- android中的数据库