Qt打开网页QAxWidget的续篇

6 篇文章 0 订阅

我最近研究用windows,qt5.9.7和ActiveQT做点事情,我实现了参考文献里面所涉及的内容,然后进一步修改了一下代码,我这里把代码分享出来,首先在pro文件中添加:

QT       += core gui axcontainer

然后我的mainwindow.h文件为:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <ActiveQt/QAxWidget>
#include <QLineEdit>
#include<QWidget>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private slots:
    void loadNavigate();

private:
    Ui::MainWindow *ui;
    QLineEdit *lineUrl;
    QAxWidget* webWidget;
    QWidget* widget ;
};

#endif // MAINWINDOW_H

我的mainwindow.cpp文件为:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QVBoxLayout>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    lineUrl = new QLineEdit;
    lineUrl->setText("www.baidu.com");
    connect(lineUrl,SIGNAL(returnPressed()),this,SLOT(loadNavigate()));

     widget = new QWidget;
      webWidget = new QAxWidget;
      //设置ActiveX控件为IEMicrosoft Web Browser
      //设置ActiveX控件的id,最有效的方式就是使用UUID
      //此处的{8856F961-340A-11D0-A96B-00C04FD705A2}就是Microsoft Web Browser控件的UUID
      webWidget->setControl(QString::fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}"));
      webWidget->setObjectName(QString::fromUtf8("webWidget"));//设置控件的名称
      webWidget->setFocusPolicy(Qt::StrongFocus);//设置控件接收键盘焦点的方式:鼠标单击、Tab键
      webWidget->setProperty("DisplayAlerts",false); //不显示任何警告信息。
      webWidget->setProperty("DisplayScrollBars",true); // 显示滚动条

      QVBoxLayout *mainLayout = new QVBoxLayout;
      mainLayout->addWidget(lineUrl);
      mainLayout->addWidget(webWidget);
//      setLayout(mainLayout);

      widget->setLayout(mainLayout);

//      webWidget->setLayout(mainLayout);
      setCentralWidget(widget);

//      setWindowState(Qt::WindowMaximized);//最大化
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::loadNavigate()
{
  QString sUrl = lineUrl->text().trimmed();
  webWidget->dynamicCall("Navigate(const QString&)",sUrl);
}

然后其他的都是默认的,然后就可以编译执行了。

界面展示

参考文献

[1].Qt打开网页QAxWidget.https://blog.csdn.net/kjxuexi1840/article/details/81326640

[2].Qt:Attempting to add QLayout "" to MainWindow "", which already has a layout.https://blog.csdn.net/rl529014/article/details/52823429

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民小飞侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值