转到不同网站后如何获得完整(准确)Url / QUrl 地址?
How to get the complete(exact) Url / QUrl Address after going to different website?
我正在使用 QT Creator 5.9 创建一个简单的 Web 浏览器模型,我的 EditLine/Text 框中有问题:
1.如何在转到不同的 website/page.
后自动更新显示的 URL 字符串
2。如何获取 exact/complete URL 字符串
我尝试搜索了一些代码,但 none 有效。
.cpp
void MainWindow::QWebViewFunction() {
_view = new QWebEngineView();
_view->load(QUrl("https://www.bing.com"));
ui->tabWidget->addTab(_view, _view->url().toString());
}
QString MainWindow::getUrlText() {
QString urlEditBox = ui->setUrlTextBox->text();
return urlEditBox;
}
void MainWindow::getTabTitle() {
int x = ui->tabWidget->currentIndex();
ui->tabWidget->setTabText(x, getUrlText());
}
//----------- Buttons
void MainWindow::on_tabWidget_tabCloseRequested(int index) {
ui->tabWidget->removeTab(index);
}
void MainWindow::on_AddBtn_clicked() {
QWebViewFunction();
}
void MainWindow::on_homeBtn_clicked() {
_view->load(QUrl("https:google.com"));
int x = ui->tabWidget->currentIndex();
ui->tabWidget->setTabText(x, "Google");
}
//------------- LineEdit
void MainWindow::on_pushButton_clicked(){
_view->load(QUrl(getUrlText()));
getTabTitle();
}
void MainWindow::on_backButton_clicked()
{
_view->page()->triggerAction(QWebEnginePage::Back);
}
.h
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
signals:
void urlChanged(const QUrl &url);
private slots:
void on_tabWidget_tabCloseRequested(int index);
void on_AddBtn_clicked();
void on_homeBtn_clicked();
void on_pushButton_clicked();
void QWebViewFunction();
QString getUrlText();
QString setUrlText();
void getTabTitle();
void on_backButton_clicked();
private:
Ui::MainWindow *ui;
QWebEngineView* _view;
};
#endif // MAINWINDOW_H
您正在寻找QWebEngineView.loadProgress()
:https://doc.qt.io/qt-5/qwebengineview.html#loadProgress
将来自 webview 小部件的信号连接到主 window 的插槽中,然后更新 url 栏。
我正在使用 QT Creator 5.9 创建一个简单的 Web 浏览器模型,我的 EditLine/Text 框中有问题:
1.如何在转到不同的 website/page.
后自动更新显示的 URL 字符串2。如何获取 exact/complete URL 字符串
我尝试搜索了一些代码,但 none 有效。
.cpp
void MainWindow::QWebViewFunction() {
_view = new QWebEngineView();
_view->load(QUrl("https://www.bing.com"));
ui->tabWidget->addTab(_view, _view->url().toString());
}
QString MainWindow::getUrlText() {
QString urlEditBox = ui->setUrlTextBox->text();
return urlEditBox;
}
void MainWindow::getTabTitle() {
int x = ui->tabWidget->currentIndex();
ui->tabWidget->setTabText(x, getUrlText());
}
//----------- Buttons
void MainWindow::on_tabWidget_tabCloseRequested(int index) {
ui->tabWidget->removeTab(index);
}
void MainWindow::on_AddBtn_clicked() {
QWebViewFunction();
}
void MainWindow::on_homeBtn_clicked() {
_view->load(QUrl("https:google.com"));
int x = ui->tabWidget->currentIndex();
ui->tabWidget->setTabText(x, "Google");
}
//------------- LineEdit
void MainWindow::on_pushButton_clicked(){
_view->load(QUrl(getUrlText()));
getTabTitle();
}
void MainWindow::on_backButton_clicked()
{
_view->page()->triggerAction(QWebEnginePage::Back);
}
.h
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
signals:
void urlChanged(const QUrl &url);
private slots:
void on_tabWidget_tabCloseRequested(int index);
void on_AddBtn_clicked();
void on_homeBtn_clicked();
void on_pushButton_clicked();
void QWebViewFunction();
QString getUrlText();
QString setUrlText();
void getTabTitle();
void on_backButton_clicked();
private:
Ui::MainWindow *ui;
QWebEngineView* _view;
};
#endif // MAINWINDOW_H
您正在寻找QWebEngineView.loadProgress()
:https://doc.qt.io/qt-5/qwebengineview.html#loadProgress
将来自 webview 小部件的信号连接到主 window 的插槽中,然后更新 url 栏。