从Qt调用Javascript函数不显示输出

时间:2014-01-29 14:48:29

标签: javascript c++ qt qt5

我正在尝试使用addToJavaScriptWindowObject mththod从QT调用我的HTML文件中的Javascript函数。我在StackOverflow上遵循了这个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创建者中运行上述QT项目时,它可以正确编译甚至运行。我看到新窗口打开但输出,在这种情况下,12 + 23 = 35的总和不会显示在Application Output窗口中。为什么会这样?

为什么即使程序运行正常,我也无法查看输出?

1 个答案:

答案 0 :(得分:1)

听起来你忘了启用调试输出。你确定你内置了调试模式吗?尝试添加qDebug()&lt;&lt; “测试”;到你的主要功能检查。