我正在使用QT Creator 5.9创建一个简单的Web浏览器的模型,我的EditLine /文本框有问题:
1。转到其他网站/页面后,如何自动更新显示的URL字符串。
2。如何获取准确/完整的网址字符串
我尝试搜索一些代码,但是没有一个起作用。
.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
答案 0 :(得分:2)
您正在寻找QWebEngineView.loadProgress()
:https://doc.qt.io/qt-5/qwebengineview.html#loadProgress
将来自webview小部件的信号连接到主窗口的插槽中,并更新网址栏。