Google地图webnightmode代码

//webnightmode.pro

SOURCES = webnightmode.cpp

QT += network webkit

 

//webnightmode.pri

CONFIG+= debug shared stl exceptions rtti

QT_ARCH = windows

QT_EDITION = OpenSource

QT_CONFIG += release debug zlib png accessibility qt3support opengl ipv6 scripttools xmlpatterns webkit svg minimal-config small-config medium-config large-config full-config

#versioning

QT_VERSION = 4.5.0

QT_MAJOR_VERSION = 4

QT_MINOR_VERSION = 5

QT_PATCH_VERSION = 0

#Qt for Windows CE c-runtime deployment

QT_CE_C_RUNTIME = no

 

//webnightmode.cpp

/****************************************************************************

**

** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).

** Contact: Qt Software Information (qt-info@nokia.com)

**

** This file is part of the Graphics Dojo project on Qt Labs.

**

** This file may be used under the terms of the GNU General Public

** License version 2.0 or 3.0 as published by the Free Software Foundation

** and appearing in the file LICENSE.GPL included in the packaging of

** this file. Please review the following information to ensure GNU

** General Public Licensing requirements will be met:

** http://www.fsf.org/licensing/licenses/info/GPLv2.html and

** http://www.gnu.org/copyleft/gpl.html.

**

** If you are unsure which license is appropriate for your use, please

** contact the sales department at qt-sales@nokia.com.

**

** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE

** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

**

****************************************************************************/

 

#include <QtCore>

#include <QtGui>

#include <QtWebKit>

 

#if QT_VERSION < 0x0040500

#error You need Qt 4.5 or newer

#endif

//定义类

 

class NightModeView : public QWebView

{

Q_OBJECT

 

public:

//构造函数,继承QWebView基类,布尔变量invert为true

 

NightModeView(QWidget *parent = 0): QWebView(parent), invert(true) {

connect(this, SIGNAL(titleChanged(const QString&)), SLOT(setWindowTitle(const QString&)));

load(QUrl("http://maps.google.com"));//使用load函数载入网络地图

}

 

private:

 

bool invert;//私有成员变量,布尔型,夜间模式转换

//画图事件处理函数

 

void paintEvent(QPaintEvent *event) {

QWebView::paintEvent(event);//

if (invert) {

QPainter p(this);//

p.setCompositionMode(QPainter::CompositionMode_Difference);

p.fillRect(event->rect(), Qt::white);

p.end();

}

}

 

void keyPressEvent(QKeyEvent *event) {

if (event->key() == Qt::Key_F3) {

invert = !invert;

update();

event->accept();

return;

}

QWebView::keyPressEvent(event);

}

 

};

 

#include "webnightmode.moc"

 

int main(int argc, char **argv)

{

#ifdef Q_WS_X11

QApplication::setGraphicsSystem("raster");

#endif

 

QApplication app(argc, argv);

 

NightModeView w;

w.show();

 

QMessageBox::information(&w, "Hint", "Use F3 to toggle night mode");

 

return app.exec();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值