从 Qt 调用 Javascript 函数不显示输出
Posted
技术标签:
【中文标题】从 Qt 调用 Javascript 函数不显示输出【英文标题】:Call to Javascript function from Qt doesnt show output 【发布时间】:2014-01-29 14:48:29 【问题描述】:我正在尝试使用addTojavascriptWindowObject
mwthod 从 QT 调用我的 html 文件中的 Javascript 函数。我在 *** 上关注了这个post,并完全按照公认的答案做了。
我的代码如下
main.cpp
#include <QApplication>
#include <QDebug>
#include <QtWebKitWidgets/QWebFrame>
#include <QtWebKitWidgets/QWebPage>
#include <QtWebKitWidgets/QWebView>
class MyJavaScriptOperations : public QObject
Q_OBJECT
public:
Q_INVOKABLE void sumOfNumbers(int a, int b)
qDebug() << a + b;
;
int main(int argc, char *argv[])
QApplication a(argc, argv);
QWebView *view = new QWebView();
view->resize(400, 500);
view->page()->mainFrame()->addToJavaScriptWindowObject("myoperations", new MyJavaScriptOperations);
view->load(QUrl("file://C:/programs/index.html"));
view->show();
return a.exec();
#include "main.moc"
.pro 文件
QT += core
QT += gui
QT += webkit
QT += webkit webkitwidgets
TARGET = QtJsonPostExample
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
OTHER_FILES += \
../../../../programs/index.html
index.html
<html>
<body>
<script type="text/javascript">
myoperations.sumOfNumbers(12, 23);
</script>
</body>
当我在 Qt creator 中运行上述 QT 项目时,它可以正确编译甚至运行。我看到新窗口打开了,但输出,在这种情况下,Application Output
窗口中没有显示 12+23= 35 的总和。为什么会这样?
为什么即使程序运行良好,我也无法查看输出?
【问题讨论】:
【参考方案1】:听起来您忘记启用调试输出。你确定你是在调试模式下构建的吗?尝试添加一个 qDebug()
【讨论】:
以上是关于从 Qt 调用 Javascript 函数不显示输出的主要内容,如果未能解决你的问题,请参考以下文章
使用结构/对象参数从 QT 调用 JavaScript 回调
使用 GTK+ Webkit Webview(和 Qt WebKit 桥)从 JavaScript/HTML 调用 C++