blob: dcb81b5321191b96323da72b67172de504dd9b54 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
#include <QtGui>
#include <QtScript>
#include <QtScriptTools>
// Perhaps shpw entire example for getting debugger up with script
int main(int argv, char **args)
{
QApplication app(argv, args);
QString fileName("helloscript.qs");
QFile scriptFile(fileName);
scriptFile.open(QIODevice::ReadOnly);
QTextStream stream(&scriptFile);
QString contents = stream.readAll();
scriptFile.close();
QScriptEngine *engine = new QScriptEngine();
QScriptEngineDebugger *debugger = new QScriptEngineDebugger();
debugger->attachTo(engine);
// Set up configuration with only stack and code
QWidget *widget = new QWidget;
//![0]
codeWindow = debugger.widget(QScriptEngineDebugger.CodeWidget)
stackWidget = debugger.widget(QScriptEngineDebugger.StackWidget)
layout = QHBoxLayout()
layout.addWidget(codeWindow)
layout.addWidget(stackWidget)
//![0]
//![1]
continueAction = debugger.action(QScriptEngineDebugger.ContinueAction)
stepOverAction = debugger.action(QScriptEngineDebugger.StepOverAction)
stepIntoAction = debugger.action(QScriptEngineDebugger.StepIntoAction)
toolBar = QToolBar()
toolBar.addAction(continueAction)
//![1]
toolBar->addAction(stepOverAction);
toolBar->addAction(stepIntoAction);
layout->addWidget(toolBar);
continueAction->setIcon(QIcon("copy.png"));
debugger->setAutoShowStandardWindow(false);
widget->setLayout(layout);
widget->show();
QPushButton button;
QScriptValue scriptButton = engine->newQObject(&button);
engine->globalObject().setProperty("button", scriptButton);
//![2]
debugger.action(QScriptEngineDebugger.InterruptAction).trigger()
engine.evaluate(contents, fileName)
//![2]
return app.exec();
}
|