zoukankan      html  css  js  c++  java
  • 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();
    }
    

      

  • 相关阅读:
    Javascript笔记部分
    JQuery学习笔记(3)
    WPF中批量进行验证操作
    学习sqlserver的函数方法
    .NET学习笔记(2)
    Asp.Net页面生命周期
    ThreadLocal
    NIO内存映射
    CAS基础和原子类
    Java锁概念基础
  • 原文地址:https://www.cnblogs.com/striver-zhu/p/4571554.html
Copyright © 2011-2022 走看看