温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

QT代替WebView的方法及使用例子

发布时间:2020-08-15 01:07:34 来源:网络 阅读:14375 作者:QcPointSudo 栏目:开发技术

  由于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;

}*/


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI