開発環境の構築
MaintenanceTool.exeを起動します
QWebEngineを追加します
![](http://memo.eightban.com/wp/wp-content/uploads/2024/01/2024-01-25_18h03_25-700x465.png)
作り方
qtcreator.exe 起動
create Project → Qt ウィジェットアプリケーション 選択
名前はQtsimplebrowser
ビルドシステムは、qmake を選択
キットを選択 C++コンパイラはVC++(msvc)Qt 6.6
Qtsimplebrowser.pro 次の行を追加
QT += webenginewidgets
フォームmainwindow.ui
![](http://memo.eightban.com/wp/wp-content/uploads/2024/01/2024-01-24_21h16_14-700x436.png)
左のウィジェットの一覧から URL の入力欄として使用する「 "Line Edit"」と Web ページの表示に使用する「widget」をフォームに貼り付け。 LineEdit が widget よりも上部になるように置く。垂直に並べるボタンを押して整形します
widgetオブジェクトを右クリックして、「格上げ先」->「QWebEngineView」を選択して格上げする
格上げ先にQWebEngineViewが無ければ、「格上げ先を指定」を選択し「格上げされたクラス名」に「QWebEngineView」を入力し「格上げ」をクリック
![](http://memo.eightban.com/wp/wp-content/uploads/2024/01/2024-01-24_21h53_50.png)
[qt QLineEdit] を右クリックし、コンテキストメニューの中から「スロットへ移動」を選択してください。URLを入力しエンターキーを押した後に画面に表示されるようにreturnPressed を選びます
![](http://memo.eightban.com/wp/wp-content/uploads/2024/01/2024-01-24_22h02_13.png)
ソースに空の関数が追加されるので次のコードを追加します
void MainWindow::on_lineEdit_returnPressed()
{
ui->widget->load(QUrl(ui->lineEdit->text()));
}
simplebrowser.ui を開き、今度は [qt QWebEngineView] を右クリックして 「Go to slot...」を選択します。
urlChangedを探してもないので次のように対応します。画面が変わった時にURLを変更させるためです
mainwindow.cpp
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->widget, &QWebEngineView::urlChanged, this,[this](const QUrl &url) {
ui->lineEdit->setText(url.toDisplayString());
});
}
とりあえず動きました
![](http://memo.eightban.com/wp/wp-content/uploads/2024/01/2024-01-25_17h28_39-700x552.png)
戻るボタン追加
デザインに戻る進む更新のボタンを追加します
[qt QpushButton] を右クリックし、コンテキストメニューの中から「スロットへ移動」を選択してください。ボタンをクリックすると画面が戻るようにするためclickedを選びます
他の2つのボタンを同様にします
![](http://memo.eightban.com/wp/wp-content/uploads/2024/01/2024-01-25_20h34_00.png)
次のコードを追加します
void MainWindow::on_pushButton_clicked()
{
ui->widget->back();
}
void MainWindow::on_pushButton_2_clicked()
{
ui->widget->forward();
}
void MainWindow::on_pushButton_3_clicked()
{
ui->widget->reload();
}
![](http://memo.eightban.com/wp/wp-content/uploads/2024/01/2024-01-26_14h22_10-700x552.png)
キーボードのショートカットキーに対応させる
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QShortcut>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->widget, &QWebEngineView::urlChanged, this,[this](const QUrl &url) {
ui->lineEdit->setText(url.toDisplayString());
});
QShortcut *BacksC = new QShortcut(QKeySequence::Back, this);
connect(BacksC, &QShortcut::activated, this, &MainWindow::on_pushButton_clicked);
QShortcut *ForwardsC = new QShortcut(QKeySequence::Forward, this);
connect(ForwardsC, &QShortcut::activated, this, &MainWindow::on_pushButton_2_clicked);
}
QShortcut Class | Qt Widgets 5.15.16
エラーは出ますが簡単なWebブラウザの作成の方法を紹介しました