Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Script. Интеграция WebKit _ Несколько вопросов по Qt Script

Автор: JohnZ 1.7.2015, 11:12

Всем Здравия !

Уважаемые форумчане, помогите разабраться с Qt Script. Я в этом пока новичок.
Если возможно, то дайте ссыль, где это описано. У меня либа Qt версии 4.5.3.
Вопросы такие -
1. Переделал задачу с QSA на Qt Script. Было в QSA ...

interpreter->addObjectFactory( new QSInputDialogFactory());

и далее в скрипте можно было вызывать MessageBox и создавать динамические диалоги,
т.е. не так как в примере с калькулятором с загрузкой из ui ... Кроме того была возможность
вызова простых диалогов ввода (число, дата, строка) ...

Раскрывающийся текст

MessageBox.information("appStart", MessageBox.Ok);

var ans = MessageBox.warning( "Hello World",
MessageBox.Yes, MessageBox.No );

var textInput = String("Hello World !!");
print(textInput);

var maxX = 300;
var maxY = 200;

var textInput = new LineEdit;
textInput.text = "Привет Hello World!!";
textInput.label = "Text: ";

var sx = new SpinBox;
sx.maximum = maxX;
sx.minimum = 0;
sx.value = 30;
sx.label = "x: ";

// skip

var deltaGroup = new GroupBox;
deltaGroup.title = "Delta";
deltaGroup.add( dx );
deltaGroup.add( dy );

var dialog = new Dialog;
dialog.add( textInput );
dialog.add( startGroup );
dialog.add( deltaGroup );
dialog.add( it );
dialog.title = "Hello World";

var ok = dialog.exec();

Как это-же делается в Qt Script ?

2. Опять-же :rolleyes: есть следующий класс.
Раскрывающийся текст

class fpForma : public QDialog // Класс объекта
{
Q_OBJECT

public:

fpForma(int id, MainWindow *parent = 0, Qt::WindowFlags f = 0);
~fpForma();

bool initForm(int Cmd = 0);

public slots:

void save();
void submit();

private:

MainWindow *Parent;

QSqlTableModel *model;
QModelIndex curIndex;
QSqlRecord curRecord;
};


Как можно получить доступ из скрипта к model, curIndex и curRecord ?
Смогу-ли я, к примеру, в скрипте вызвать model.setFilter(...) или curIndex.row() как в с++ ? Как это можно реализовать ?

3. Ну и пока последний вопрос. Прошу дать ссыль где описано связывание переменных (var) скрипта и переменных
в коде с++. (через new ?) Может есть дока, где этот механизм подробно описан ?

Заранее благодарен за помощь !

Автор: lanz 2.7.2015, 20:32

http://doc.qt.io/qt-5/qtscript-index.html

Автор: JohnZ 7.7.2015, 20:46

Не помогло :( Где можно глянуть пример MessageBox("Hello World !"); в скрипте ?
Не может-же быть, что в QSA это было а тут нет :o:
Как из скрипта запросить пароль, ввести период, строку и т.д. ? ? ?
Ведь в QSA это было, как я указал выше ...

Вот пример скрипта, который в QSA отрабатывал без проблем,
а в Qt Script в каждой строке ошибка и вылазит отладчик :( .

Раскрывающийся текст

function appStart()
{
var ans = MessageBox.information("appStart", MessageBox.Ok);

var maxX = 300;
var maxY = 200;

var textInput = new QLineEdit();
textInput.text = "Привет Hello World!!";
textInput.label = "Text: ";

var sx = new SpinBox;
sx.maximum = maxX;
sx.minimum = 0;
sx.value = 30;
sx.label = "x: ";

var sy = new SpinBox;
sy.maximum = maxY;
sy.minimum = 0;
sy.value = 30;
sy.label = "y: ";

var dx = new SpinBox;
dx.maximum = 100;
dx.minimum = -100;
dx.value = 8;
dx.label = "x: ";

var dy = new SpinBox;
dy.maximum = 100;
dy.minimum = -100;
dy.value = 8;
dy.label = "y: ";

var it = new SpinBox;
it.maximum = 100;
it.minimum = 0;
it.value = 10;
it.label = "Number of iterations: ";

var startGroup = new GroupBox;
startGroup.title = "Start";
startGroup.add( sx );
startGroup.add( sy );

var deltaGroup = new QGroupBox();
deltaGroup.title = "Delta";
deltaGroup.add( dx );
deltaGroup.add( dy );

var dialog = new Dialog;
dialog.add( textInput );
dialog.add( startGroup );
dialog.add( deltaGroup );
dialog.add( it );
dialog.title = "Hello World";

var ok = dialog.exec();
}


Как это-же сделать в Qt Script ??? H E L P :clapping:

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)