【QT进阶】Qt Web混合编程之html、 js的简单交互
#include <QApplication>
#include <QWebEngineView>
#include <QWebChannel>
class MyHtmlInteractor : public QObject {
Q_OBJECT
public:
explicit MyHtmlInteractor(QObject *parent = nullptr) : QObject(parent) {}
public slots:
void greetFromQt(const QString &name) {
qDebug() << "Hello, " + name + " from Qt!";
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QWebEngineView view;
MyHtmlInteractor interactor;
QWebChannel channel;
channel.registerObject(QStringLiteral("interactor"), &interactor);
view.page()->setWebChannel(&channel);
view.setUrl(QUrl(QStringLiteral("qrc:/index.html")));
view.show();
return app.exec();
}
在这个例子中,我们创建了一个MyHtmlInteractor
类,它有一个槽函数greetFromQt
,可以接收来自HTML页面的信息并在Qt中打印出来。我们通过QWebChannel
将这个对象暴露给了Web引擎视图,并在HTML页面中调用JavaScript函数来触发这个槽函数。这样,我们就实现了HTML和JavaScript与Qt之间的简单交互。
评论已关闭