QtScript: Установить значение для свойства QMap |
Здравствуйте, гость ( Вход | Регистрация )
QtScript: Установить значение для свойства QMap |
shasoft |
3.10.2012, 21:08
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 3.10.2012 Пользователь №: 3545 Спасибо сказали: 0 раз(а) Репутация: 0 |
Создаю свойство типа QMap в объекте, который нужен в qts
Раскрывающийся текст H Раскрывающийся текст
CPP Раскрывающийся текст
Выполняю такой скрипт
получаю следующий результат: Цитата 1111 aaaa 22222 bbbb Т.е. в сишном коде значения устанавливаются и в скрипте они видны. Но в самом скрипте свойства не устанавливаются. Может кто сталкивался и знает ответ? |
|
|
Алексей1153 |
4.10.2012, 8:54
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
а вот так что выведет ?
|
|
|
shasoft |
4.10.2012, 9:15
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 3.10.2012 Пользователь №: 3545 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата 1111 aaaa 22222 bbbb 333 undefined в общем при том, что новый свойства в скрипте не устанавливаются, этого следовало ожидать |
|
|
Алексей1153 |
4.10.2012, 9:34
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
а я ведь правильно понимаю, что это интерпретируемый язык ? Тогда возможна ошибка в синтаксисе, и строка с присвоением просто не выполняется. Никакой ошибки не выводится в консоли ?
Попробуй вызвать метод объекта
|
|
|
shasoft |
4.10.2012, 9:58
Сообщение
#5
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 3.10.2012 Пользователь №: 3545 Спасибо сказали: 0 раз(а) Репутация: 0 |
Никакой ошибки не выводится. и даже отрабатывает конструкция obj["aaa"] = 1
Т.е. у объекта obj появляется свойство aaa. Я так понял, что с obj это срабатывает, потому что он наследник от QObject, а QMap нет. Единсвенное, что непонятно, зачем мне доступ к свойству типа QMap в скрипте, если я не могу полноценно с ним работатать. Придется сделать наверное так:
Только ещё не разбирался, можно с одним именем две функции сделать. Хотя, там вроде можно функцию с переменным числом параметров делать, так что таки и придется делать. |
|
|
Алексей1153 |
4.10.2012, 10:30
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
написал я то, что под спойлером, а потом задумался, что не пойдёт так ) Хотя, попробуй. Если не прокатит оператор [] , замени его на обычную функцию - пример ниже спойлера
Раскрывающийся текст можно так сделать
Сообщение отредактировал Алексей1153 - 4.10.2012, 10:34 |
|
|
shasoft |
4.10.2012, 10:38
Сообщение
#7
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 3.10.2012 Пользователь №: 3545 Спасибо сказали: 0 раз(а) Репутация: 0 |
Свой вариант решения я привел.
Но вот с вашим думаю могут быть проблемы. Раскрывающийся текст
|
|
|
Алексей1153 |
4.10.2012, 11:30
Сообщение
#8
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
мап работает так, что если ключа нет, то он добавится, а значение, связанное с ним, будет дефолтное. Но ссылку на него уже можно вернуть
Если нужно избежать автоматического добавления ключа, следует применять метод find карты |
|
|
shasoft |
4.10.2012, 11:55
Сообщение
#9
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 3.10.2012 Пользователь №: 3545 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не прокатило
вот этот код выдаетЦитата undefined т.е. на присваивании, судя по всему, скрипт завершает работу. |
|
|
Алексей1153 |
4.10.2012, 12:01
Сообщение
#10
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
ждём тогда спецов )
|
|
|
Текстовая версия | Сейчас: 19.4.2024, 6:52 |