javascript - 向现有 QT 应用程序添加 javascript 支持

标签 javascript c++ qt qtscript

我目前有一个具有多个按钮的功能性 QT 应用程序。

我需要直接从 javascript 控制我的应用程序,如下例,其中 AccessControl 是我的 QObject 类:

AccessControl.configure("price",10);
AccessControl.configure("autoClose",false);
var ret = AccessControl.sendAskAliveMessage() ;
if(!ret)
{
    AccessControl.print("Toll not found");
}
else
{
    ret = AccessControl.SendTransactionMessage() ;

    if(ret)
    {
        AccessControl.Open();
        wait(10000);
        AccessControl.Close();
    }
    else
    {
        AccessControl.printError(ret);
    }
}

我现有的应用程序像这样连接信号和插槽:

QObject::connect(&w, SIGNAL(SendTransaction()),
               &Toll, SLOT(SendTransactionMessage()));

我是 QT 的初学者,我想做的就是让用户可以使用脚本而不是点击 UI。

我已经阅读了QTScript文档,但我确实有些难以理解。

如果有人能向我解释如何去做,或者如果您有一些简单易懂的好例子,那就太好了!

编辑以获取有关我的问题的更多信息:

我的应用程序是一个访问控制模拟器。我有几个按钮用于开门、关门、配置价格…… 我想编写此应用程序的脚本,以便在不存在需要单击 UI 的用户的情况下创建测试每种可能的情况。

谢谢。

最佳答案

您可以将类连接到 JavaScript。这是一个 PySide python 示例。

class MyCLass(object):
    @QtCore.Slot(str)
    def doSomething(self, info):
        # do something with the string info here

frame.addToJavaScriptWindowObject("varName", MyClass)
frame.evaluateJavaScript("varName.doSomething('string')")

我认为这就是您在 C++ 中的做法。这是插槽的链接 http://qt-project.org/doc/qt-4.8/signalsandslots.html . QWebFrame 可以将对象添加到 javascript 并运行 javascript 代码。

class MyClass {
public slots:
     void doSomething(String info);

关于javascript - 向现有 QT 应用程序添加 javascript 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20212897/

相关文章:

javascript - JS Closure - 依赖于回调的多个日期选择器初始化/调用

c++ - malloc 和 New 中堆初始化的混淆

c++ - VS2008 C++项目编译的外化参数

c++ - 从带有 opengl 代码的 C++ 转换为带有 GUI 的 QT 应用程序?

c++ - 未满足的依赖项 : xscrnsaver

ios - QMessagebox是否有用于IOS开发的替代解决方案(仅QWidget应用程序)?

javascript - 如何在nodejs中使用crypto.randomBytes来使用异步/等待?

javascript - 如何在屏幕尺寸更改时覆盖 jquery slidetoggle

javascript - jQuery 多个动态表单到多个动态 iFrame

c++ - Cuda 以原子方式执行操作