Задать имя объекта не имея SetObjectName |
Здравствуйте, гость ( Вход | Регистрация )
Задать имя объекта не имея SetObjectName |
JuryS1806 |
26.12.2009, 23:52
Сообщение
#1
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
Удачного времени суток!
Хочу в порядке бреда задать вопрос. Имею :
Так вот, задача в том, чтобы задать имя объекта не myName, а например значение QString. Пробовал таким способом: QString str = "NameOfObject"; char* ss = str.toAscii().data(); Далее пробую Handle(AIS_Point) ss = new AIS_Point(new Geom_CartesianPoint(Point)); Не дает имя задать. Вообщем всю голову сломал. Прошу помочь. |
|
|
BRE |
27.12.2009, 0:09
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
QMap<QString, Handle(AIS_Point)> ?
|
|
|
JuryS1806 |
27.12.2009, 0:25
Сообщение
#3
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
Я не совсем понял. Сейчас аналог открыл Salome-Meca. Так вот они свой класс ввели вместо Handle(AIS_Interactive) используют Handel(SALOME_InteractiveObject)
Но ведь по идее даже если создавать не OpenCascade объекты, ведь возможно задать имя объекта ? Или я чего не так понял. |
|
|
JuryS1806 |
27.12.2009, 2:16
Сообщение
#4
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
По ходу задача не выполнима. А все таки, даже если я создаю элементарный QAction:
QAction * <имя акшона> = new QAction(...); Или в принципе это не возможно. Нужно при написании программы жестко задавать имя ? |
|
|
JuryS1806 |
27.12.2009, 21:19
Сообщение
#5
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
2 дня никаких результатов. И вправду это уже даже не смешно ! Может быть хоть какие-то мысли ? Что можно попробовать ?? Как передать имя объекта в функцию ?
|
|
|
Litkevich Yuriy |
27.12.2009, 21:29
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Из твоего первого соощения, совершенно ничего не понятно.
Например, что это такое Handle(AIS_Point) ss = new AIS_Point(new Geom_CartesianPoint(Point)); .Ты чего-то себе подразумеваешь, а другим не рассказываешь. Какому классу ты хочешь задать имя объекта? Он самописаный? Ты не можешь придумать как хранить имя объекта в сомописаном классе? |
|
|
JuryS1806 |
27.12.2009, 22:17
Сообщение
#7
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
Для управления объектами Open CASCADE предлагает механизм, известный как handle, наследуемый от MMgt_Tshared-класса. Handle - это дескриптор, который автоматически перераспределяет память.....
Одним словом, Handle здесь совсем не обязательно. можно просто: AIS_Point* ss = new AIS_Point(new Geom_CartesianPoint(Point)); Это тоже самое как мы создаем QAction: QAction* <имя> = new QAction (...) А ВОТ КАК ЗАДАТЬ ИМЯ?! УМА НЕ ПРИЛОЖУ. ДВА ДНЯ УЖЕ !!! |
|
|
Litkevich Yuriy |
27.12.2009, 22:21
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
AIS_Point* ss = new AIS_Point(new Geom_CartesianPoint(Point)); Ни чё не понимаю, если это тоже самое т.е. AIS_Point является наследником QObject, то и пиши ss->setObjectName("ююю").Это тоже самое как мы создаем QAction: QAction* <имя> = new QAction (...) В чём проблема. |
|
|
JuryS1806 |
27.12.2009, 22:33
Сообщение
#9
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
Вот и я думал так сделать ! Уже написал программу, все интерактивные режимы и операции ! Блин, а теперь выяснил, что не могу графическим объектам задать атрибуты, да черт с ними, хотя бы имя объекта, атрибуты можно и отдельно хранить.
нет там никаких SetObjectName. есть TDF_Label, TDF_Attributes... но под QT оно не работает. Все время бьет ошибку undefined reference error, хотя под MS Visual собирается нормально. Блин я в тупике. Я могу обратиться к этим объектам, могу их удалять, складывать , вычитать... Могу вывести их в список, !но имя присваивается им при создании и ВСЕ ТУТ ! хоть тресни ! AIS_Point* Point1 = new AIS_Point(new Geom_CartesianPoint(Point)); значит создасться точка с именем Point1 а при следующем добавлении точки это имя затирается. Хотя точка остается и также можно с ней работать. ОДНИМ СЛОВОМ, ДУРДОМ ! |
|
|
Litkevich Yuriy |
27.12.2009, 23:10
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
здаётся мне, что тема не имеет отношения к Qt.
|
|
|
Текстовая версия | Сейчас: 27.12.2024, 9:35 |