2017-01-07 11 views
2

Я создаю простой веб-браузер с Qt 5.7 и webEngine. Я хотел бы создать функцию поиска, чтобы найти слово в webView, но я действительно не знаю, как сделать взаимодействие между веб-контентом и Qt (я новичок в Qt, я делаю это для удовольствия и улучшаю свой уровень).Qt найти функцию слова с QWebEngine

это минимальный код слишком дисплей WebView: main.cpp

#include "mainwindow.h" 

#include <QApplication> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 

    MainWindow w; 
    w.showMaximized(); 

    return a.exec(); 
} 

mainwindow.h

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QMainWindow> 
#include <QtWebEngineWidgets> 

namespace Ui { 
class MainWindow; 
} 

class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    explicit MainWindow(QWidget *parent = 0); 
    ~MainWindow(); 
    void setWebEngine(); 

private: 
    Ui::MainWindow *ui; 
    QWebEngineView *view;  
}; 

#endif // MAINWINDOW_H 

mainwindow.cpp

#include "mainwindow.h" 
#include "ui_mainwindow.h" 

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 
    setWebEngine(); 
    setCentralWidget(view); 
} 

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

void MainWindow::setWebEngine() 
{ 
    view = new QWebEngineView(); 
    view->load(QUrl("http://www.google.com")); 
} 

Я хотел бы знать, что-то else, возможно ли перечислять элементы в веб-содержимом (форма, h1, h2, ...)

Иметь хороший день, и извините за мой английский;)

+0

Что вы имеете в виду со вторым вопросом? Прошу прощения, но прежде чем спрашивать, пожалуйста, прочитайте документацию (doc.qt.io/qt-5/qwebengineview.html). Как использовать ссылки в комментариях xD? –

+0

Я хочу сказать, можно ли найти элементы на веб-странице, такие как ,

, ... и, например, получить их содержимое или изменить его. –

+0

И спасибо за ваш ответ, найти текст. Если у вас есть идея для моего второго вопроса, это может помочь мне в другом проекте =) –

ответ

2

С Qt5 documentation

void QWebEngineView::findText(const QString &subString, QWebEnginePage::FindFlags options = QWebEnginePage::FindFlags()) 

Находит указанная строка, подстрока, на странице, используя данные варианты.

Чтобы очистить выбор, просто передайте пустую строку.

См. Также selectedText() и selectionChanged().

Должно быть довольно просто.