Qt加载网页(加载浏览器插件)和制作托盘后台运行(南信大财务报账看号)
程序模块要添加QNetWork和QWebKit模块:
nuistfinancevideo.h文件:
#ifndef NUISTFINANCEVIDEO_H
#define NUISTFINANCEVIDEO_H #include <QtGui/QtGui>
#include <QtNetwork/QNetworkReply>
#include <QtWebKit/QWebView>
#include <QtWebKit/QWebElementCollection>
#include <QtNetwork>
#include <QtWebKit/QWebFrame>
#include <QtWebKit>
#include "ui_nuistfinancevideo.h" class NuistFinanceVideo : public QMainWindow
{
Q_OBJECT public:
NuistFinanceVideo(QWidget *parent = 0, Qt::WFlags flags = 0);
~NuistFinanceVideo(); private:
Ui::NuistFinanceVideoClass ui; void createActions();
void createTrayIcon(); QSystemTrayIcon *trayIcon;//系统托盘对象
QMenu *trayIconMenu; //添加到系统托盘对象的菜单 QAction *minimizeAction;
QAction *restoreAction;
QAction *quitAction; void closeEvent(QCloseEvent *e);//程序关闭到托盘
void changeEvent(QEvent *e);//程序最小化到托盘 public slots:
void iconactivated(QSystemTrayIcon::ActivationReason reason);//响应鼠标点击托盘的事件
}; #endif // NUISTFINANCEVIDEO_H
nuistfinancevideo.cpp文件:
#include "nuistfinancevideo.h" NuistFinanceVideo::NuistFinanceVideo(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
//设置支持中文语言
QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));
//加载浏览器插件,将所需插件放在和代码同一目录下,这里用到WebVideoActiveX.ocx和npWebVideoPlugin.dll(一般安装在C:/Program Files/Web Components/),用于显示监控视频
ui.webView->page()->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, true);
//加载网页
QString url=tr("http://202.195.237.204/doc/page/login.asp");
ui.webView->load(QUrl(url));
//隐藏网页滚动条
ui.webView->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
ui.webView->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
//建立系统托盘图标
createActions();
createTrayIcon();
} void NuistFinanceVideo::createActions()
{
minimizeAction = new QAction(tr("最小化"), this);
connect(minimizeAction, SIGNAL(triggered()), this, SLOT(hide()));
restoreAction = new QAction(tr("还原"), this);
connect(restoreAction, SIGNAL(triggered()), this, SLOT(showNormal()));
quitAction = new QAction(tr("退出"), this);
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); //设置右键点击时弹出的菜单
trayIconMenu = new QMenu(this);
trayIconMenu->addAction(minimizeAction);
trayIconMenu->addAction(restoreAction);
trayIconMenu->addAction(quitAction);
} void NuistFinanceVideo::createTrayIcon()
{
if (!QSystemTrayIcon::isSystemTrayAvailable()) //判断系统是否支持系统托盘图标
{
return;
}
trayIcon = new QSystemTrayIcon(this);
trayIcon->setIcon(QIcon(tr(":/NuistFinanceVideo/Resources/icon.jpg")));
trayIcon->setToolTip(tr("南信大财务报账看号客户端"));
trayIcon->setContextMenu(trayIconMenu);
trayIcon->show();
connect(trayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(iconactivated(QSystemTrayIcon::ActivationReason)));
} //关闭到托盘
void NuistFinanceVideo::closeEvent(QCloseEvent *e)
{
e->ignore();
this->hide();
} //最小化到托盘
void NuistFinanceVideo::changeEvent(QEvent *e)
{
if((e->type()==QEvent::WindowStateChange)&&this->isMinimized())
{
QTimer::singleShot(100, this, SLOT(close()));
}
} //点击托盘事件
void NuistFinanceVideo::iconactivated(QSystemTrayIcon::ActivationReason reason)
{
//触发后台图标执行相应事件
switch (reason)
{
case QSystemTrayIcon::Trigger:
case QSystemTrayIcon::DoubleClick:
{
showNormal();
break;
}
case QSystemTrayIcon::MiddleClick:
break;
default:
break;
}
} NuistFinanceVideo::~NuistFinanceVideo()
{ }
main.cpp文件:
#include "nuistfinancevideo.h"
#include <QtGui/QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv); NuistFinanceVideo w;
w.show();
return a.exec();
}
Qt加载网页(加载浏览器插件)和制作托盘后台运行(南信大财务报账看号)的更多相关文章
- WebView 加载网页 加载资源 总结 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- webview加载网页加载不出来
1.webView.loadUrl(picTargetUrl); 写在最前面. 1.在无线城市迷你版的项目,用webview去loadUrl的时候出现加载的现象. url 地址是 http://go. ...
- 浏览器(或客户端)触发,后台运行php脚本
既我从浏览器这端触发服务器上的php脚本,要想让服务器端的php脚本一直执行,我得把该网页一直开着,这样就达不到我不开电脑不开网页进行爬取的目的,因此查找了些资料,得知 ignore_user_abo ...
- nopCommerce 3.9 大波浪系列 之 网页加载Widgets插件原理
一.插件简介 插件用于扩展nopCommerce的功能.nopCommerce有几种类型的插件如:支付.税率.配送方式.小部件等(接口如下图),更多插件可以访问nopCommerce官网. 我们看下后 ...
- BOM 浏览器对象模型_渲染引擎_JavaScript 引擎_网页加载流程
1. 浏览器核心的两个组成部分 渲染引擎 将网页代码渲染为用户视觉可以感知的平面文档 分类: Firefox Gecko 引擎 Safari WebKit 引擎 Chrom ...
- 通过chrome浏览器分析网页加载时间
今天趁着下班的时间看了下chrome浏览器的网页加载时间分析工具和相关文档,简单写点儿东西记录一下. 以百度首页加载为例,分析下一张图片1.jgp(就是背景图)的加载时间 看右侧的Timing标签,从 ...
- No.11 selenium学习之路之加载浏览器插件for Firefox
打开帮助 —— 故障排除信息
- UIWebView 加载网页、文件、 html-b
UIWebView 是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf word doc 等等文件 生成webview 有两种方法,1.通过storyboard 拖拽 2.通过al ...
- 《转》如何让你的网页加载时间降低到 1s 内
当初分析了定宽高值和定宽高比这两种常见的图片延迟加载场景,也介绍了他们的应对方案,还做了一点技术选型的工作. 经过一段时间的项目实践,在先前方案的基础上又做了很多深入的优化工作.最终将好奇心日报的网页 ...
随机推荐
- linux 查看局域网内ip
$ sudo apt-get install nmap $ nmap -sP 192.168.1.1/24 windows 下直接arp -a就能看到.
- 简单的线程同步问题:两个线程交替执行N次【Synchronized、Lock、ArrayBlockingQueue】
方法一:传统的线程方法import org.apache.log4j.Logger; /** * 两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象.<br/> * ...
- lintcode:Search Insert Position 搜索插入位置
题目: 搜索插入位置 给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引.如果没有,返回到它将会被按顺序插入的位置. 你可以假设在数组中无重复元素. 样例 [1,3,5,6],5 → 2 ...
- lintcode : 二叉树的最小深度
题目: 二叉树的最小深度 给定一个二叉树,找出其最小深度. 二叉树的最小深度为根节点到最近叶子节点的距离. 样例 给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 ...
- 转一个distinct用法,很有帮助
转一个distinct用法,很有帮助 (2011-12-01 15:18:11) 转载▼ 标签: 杂谈 分类: mysql复制 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提 ...
- 分布式内存对象缓存系统Memcached-概述
全面掌握Memcached 1. 概述 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,是为了加快网站http://www. ...
- Java API —— 异常
1.异常:异常就是Java程序在运行过程中出现的错误. 2.异常由来:问题也是现实生活中一个具体事务,也可以通过java 的类的形式进行描述,并封装成对象.其实就是Java对不正常情况进行描述后的对象 ...
- 受限波兹曼机导论Introduction to Restricted Boltzmann Machines
Suppose you ask a bunch of users to rate a set of movies on a 0-100 scale. In classical factor analy ...
- trackr: An AngularJS app with a Java 8 backend – Part IV 实践篇
REST API对于前后端或后端与后端之间通讯是一个好的接口,而单页应用Single Page Applications (SPA)非常流行. 我们依然以trackr为案例,这是一个跟踪工作时间 请假 ...
- Struts2注解配置之@Namespace(四)
今天开始学习@Namespace注解. 还是先看一段代码: package com.example.actions; import org.apache.struts2.convention.anno ...