由于QT版本更新,QT里面的WebView控件找不到了,不过通过查找一些资料和自己的摸索,终于明白如何使用QT里面的AxWidget去替换WebView。

首先在UI里面添加一个QAxWidget的控件拉到UI上面去

QAxWidget:

做好这步以后还需要将你的QAxWidget提升为WebQAxWidget这时候基本搞定了UI设计的控件要求

下面是我制作的的一个地图显示的源代码



#include "map.h"

#include "ui_map.h"

#include "QApplication"

#include "QListWidgetItem"

#include "QListWidget"

#include "QMessageBox"

#include "QDir"

#include "QFileDialog"

#include "QFile"

#include "QListWidgetItem"

#include "QDebug"

#include "QVariant"

#include "QAbstractEventDispatcher"

#include "QUrl"

#include "QNetworkAccessManager"

#include "QNetworkRequest"

#include "QNetworkReply"

#include "QUrlQuery"

#include "QtNetwork"

#include "QDesktopWidget"

#include "QHttpPart"

#include "QFrame"


Map::Map(QWidget *parent) :

QWidget(parent),

ui(new Ui::Map)

{

ui->setupUi(this);

setWindowTitle("Map");

setMaximumHeight(408);

setMinimumHeight(408);

setMaximumWidth(399);

setMinimumWidth(399);

//ui->addrLineEdit->setText("https://www.baidu.com/");

this->showBaiduMap();


connect(ui->goCityBtn,SIGNAL(clicked(bool)),this,SLOT(showAddrWeb()));

connect(ui->mapBtn,SIGNAL(clicked(bool)),this,SLOT(showBaiduMap()));

connect(ui->DispalyThething,SIGNAL(clicked(bool)),this,SLOT(ShowDataMapSlots()));

}


Map::~Map()

{

delete ui;

}

void Map::webShow(const QString &url)

{

ui->webBrowser->dynamicCall("Navigate(const QString&)",url); //打开一个网站在webBrower控件内

}


void Map::showAddrWeb()

{

QString addr=ui->addrLineEdit->text();

//if((addr.indexOf("www")!=0)&&(addr.indexOf("http")!=0)) return;

webShow(addr);

}


void Map::showBaiduMap()

{

QString mapHtml=QDir::currentPath()+"/MapFile/BaiduMap.html";

qDebug()<<QDir::currentPath();

//qDebug()<<myurl;

//ui->addrLineEdit->setText("地图");

webShow(mapHtml);

}

void Map::ShowDataMapSlots()

{


}

/*

QUrl Map::GPSMark(const QString &GPSCoordinate)

{


QUrl temp;

QString ret;

HttpClient * http = new HttpClient();

QUrl url;

url.setUrl("http://api.map.baidu.com/marker");

QUrlQuery urlQuery;

urlQuery.addQueryItem("location", GPSCoordinate);

urlQuery.addQueryItem("title", tr("my GPS location")); //标点的标题

urlQuery.addQueryItem("content", tr("current location")); //标点的内容

urlQuery.addQueryItem("output", "html");

urlQuery.addQueryItem("coord_type", "bd09");

urlQuery.addQueryItem("src", "map");

url.setQuery(urlQuery);

http://map.baidu.com/?latlng=40.047669,116.313082&title=my gps loclation

url = QUrl("http://map.baidu.com/?latlng=40.047669,116.313082&title=我的位置&content=百度奎科大厦&autoOpen=true&l");

webShow(url);

setWindowTitle(url.toString());

return temp;

}*/