1

私は現在、いくつかのボタンを備えた機能的な QT アプリを持っています。

AccessControl が QObject クラスである次の例のように、JavaScript からアプリケーションを直接制御する必要があります。

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をクリックする必要があるユーザーがいなくても、考えられるすべてのケースをテストするために、このアプリケーションをスクリプト化したいと思います。

ありがとう。

4

2 に答える 2

1

クラスを 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);
于 2013-11-26T14:10:49.557 に答える