qt中带进度条的浏览器应用

在qt中对于浏览器应用,是使用的QWebEngineView类,通过load方法加载要浏览的url网址,并调用show来显示。而进度条是使用QProgressBar类,可以在任意控件通过addWidget方法显示出来。

    //初始化进度条
    progressbar=new QProgressBar;
    //把进度条添加到任务栏
    ui->statusBar->addWidget(progressbar);
    //初始化WebEngineView浏览器
    webview = new QWebEngineView(parent);
    webview->load(QUrl("http://www.baidu.com"));
    webview->show();
    ui->verticalLayout->addWidget(webview);
    //urlChanged是当网址发生变化时的信号,参数是一个输出参数QUrl类型,表示新的网址
    QObject::connect(webview,SIGNAL(urlChanged(QUrl)),this,SLOT(setUrl(QUrl)));
    //titleChanged是对应的标题发生变化,跟上边urlChanged一样
    QObject::connect(webview,SIGNAL(titleChanged(QString)),this,SLOT(setTitle(QString)));
    //loadProgress是表示浏览器加载的进度显示
    QObject::connect(webview,SIGNAL(loadProgress(int)),this,SLOT(setProgress(int)));
    //loadFinished是表示浏览器加载完毕与否
    QObject::connect(webview,SIGNAL(loadFinished(bool)),this,SLOT(removeProgress(bool)));
void MainWindow::setUrl(QUrl url)
{
    ui->lineEdit->setText(url.toString());
}
void MainWindow::setTitle(QString tstring)
{
    this->setWindowTitle(tstring);
}
void MainWindow::setProgress(int iValue)
{
    //如果进度条隐藏了,则显示它
    if(progressbar->isHidden())
        progressbar->show();
    //根据浏览器的加载进度信号,实时更新进度条
    progressbar->setValue(iValue);
}
void MainWindow::removeProgress(bool bHide)
{
    //当浏览器加载完时,该标志为true,如出错则为false
    if(bHide)
    {
        progressbar->hide();
        ui->statusBar->showMessage(tr("加载完毕"),5000);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值