Название: [РЕШЕНО] Данные из сингнала Отправлено: nekitozzz от Июль 03, 2012, 13:59 Есть сигнал, который оповещает об изменении значения координаты X. Qml файл при каждом таком изменении в обработчике onFirst_ball_xChanged должен изменить значение координаты элемента с id: ball (этот элемент на самом деле Rectangle), однако я получаю ошибку Получаю ошибку: ReferenceError: Can't find variable: first_ball_X_value, не могу понять, зачем Qml не видит эту переменную, также сам обработчик onFirst_ball_xChanged при подстановке туда видимых элементов вызывается только один раз, буду рад, если кто-нибудь объяснит, или подтолкнёт меня к правильному пути.
Ниже привожу куски кода из файлов ball.h, ball.cpp, main,qml Код
Код
Код
Название: Re: Данные из сингнала Отправлено: mutineer от Июль 03, 2012, 14:04 1) Какой сакральный смысл у этого кода?
Код: int first_ball_X_value = first_ball_X; 2) Тебя не беспокоит факт объявления одного слота в другом? Вынеси onFirst_ball_xChanged в тело Ball из обработчика клика Название: Re: Данные из сингнала Отправлено: OKTA от Июль 03, 2012, 14:10 а какие сношения имеет ball из qml и ball из с++??
Название: Re: Данные из сингнала Отправлено: nekitozzz от Июль 03, 2012, 14:45 а какие сношения имеет ball из qml и ball из с++?? ну в main есть строчка: Код
1) Какой сакральный смысл у этого кода? Код: int first_ball_X_value = first_ball_X; никакого :) исправил на Код
2) Тебя не беспокоит факт объявления одного слота в другом? Вынеси onFirst_ball_xChanged в тело Ball из обработчика клика спасибо большое, ужасно глупо, вынес onFirst_ball_xChanged прямо под onClick: Код однако получаю qrc:data/qml/untitled/main.qml:53:17: Cannot assign to non-existent property "onFirst_ball_xChanged" . И в IDE подчёркивается Цитировать "onFirst_ball_xChanged" не является корректным свойством .Я читал, что Qt сигналы доступны из Qml просто добавлением on к имени сигнала, может что-то ещё надо добавлять? Название: Re: Данные из сингнала Отправлено: Patrin Andrey от Июль 03, 2012, 15:02 Почему бы просто вот так не написать?
Код: Ball Название: Re: Данные из сингнала Отправлено: mutineer от Июль 03, 2012, 15:13 2) Тебя не беспокоит факт объявления одного слота в другом? Вынеси onFirst_ball_xChanged в тело Ball из обработчика клика спасибо большое, ужасно глупо, вынес onFirst_ball_xChanged прямо под onClick: Код однако получаю qrc:data/qml/untitled/main.qml:53:17: Cannot assign to non-existent property "onFirst_ball_xChanged" . И в IDE подчёркивается Цитировать "onFirst_ball_xChanged" не является корректным свойством .Я читал, что Qt сигналы доступны из Qml просто добавлением on к имени сигнала, может что-то ещё надо добавлять? first_ball_xChanged это сигнал Ball, а не MouseArea. Ты же, как я понял, вынес свой метод в MouseArea, в котором такого сигнала естественно нет. Выноси в тело Ball, вне MouseArea Название: Re: Данные из сингнала Отправлено: mutineer от Июль 03, 2012, 15:15 Почему бы просто вот так не написать? Код: Ball Потому что у класса Ball нет поля first_ball_X_value, есть только first_ball_x Название: Re: Данные из сингнала Отправлено: nekitozzz от Июль 03, 2012, 15:18 first_ball_xChanged это сигнал Ball, а не MouseArea. Ты же, как я понял, вынес свой метод в MouseArea, в котором такого сигнала естественно нет. Выноси в тело Ball, вне MouseArea Спасибо огромное за такую оперативность, теперь разобрался, всё работает отлично и как надо! |