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

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

Форум на CrossPlatform.RU _ Другие библиотеки _ Задать имя объекта не имея SetObjectName

Автор: JuryS1806 26.12.2009, 23:52

Удачного времени суток!
Хочу в порядке бреда задать вопрос.

Имею :

void createpoint::mpoint(const int myX , const int myY , const int myZ)
{
    gp_Pnt Point(myX,myY,myZ);
    Handle(AIS_Point) myName = new AIS_Point(new Geom_CartesianPoint(Point));
    getContext()->SetColor(myName,Quantity_NOC_BLACK,Standard_False);
    getContext()->Display(myName,1);
}


Так вот, задача в том, чтобы задать имя объекта не 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

QMap<QString, Handle(AIS_Point)> ?

Автор: JuryS1806 27.12.2009, 0:25

Я не совсем понял. Сейчас аналог открыл Salome-Meca. Так вот они свой класс ввели вместо Handle(AIS_Interactive) используют Handel(SALOME_InteractiveObject)

Но ведь по идее даже если создавать не OpenCascade объекты, ведь возможно задать имя объекта ? Или я чего не так понял.

Автор: JuryS1806 27.12.2009, 2:16

По ходу задача не выполнима. А все таки, даже если я создаю элементарный QAction:

QAction * <имя акшона> = new QAction(...);

Или в принципе это не возможно. Нужно при написании программы жестко задавать имя ?

Автор: JuryS1806 27.12.2009, 21:19

2 дня никаких результатов. И вправду это уже даже не смешно ! Может быть хоть какие-то мысли ? Что можно попробовать ?? Как передать имя объекта в функцию ?

Автор: Litkevich Yuriy 27.12.2009, 21:29

Из твоего первого соощения, совершенно ничего не понятно.
Например, что это такое

Цитата(JuryS1806 @ 27.12.2009, 2:52) *
Handle(AIS_Point) ss = new AIS_Point(new Geom_CartesianPoint(Point));
.
Ты чего-то себе подразумеваешь, а другим не рассказываешь.

Какому классу ты хочешь задать имя объекта? Он самописаный? Ты не можешь придумать как хранить имя объекта в сомописаном классе?

Автор: JuryS1806 27.12.2009, 22:17

Для управления объектами 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

Цитата(JuryS1806 @ 28.12.2009, 1:17) *
AIS_Point* ss = new AIS_Point(new Geom_CartesianPoint(Point));

Это тоже самое как мы создаем QAction:

QAction* <имя> = new QAction (...)
Ни чё не понимаю, если это тоже самое т.е. AIS_Point является наследником QObject, то и пиши ss->setObjectName("ююю").
В чём проблема.

Автор: JuryS1806 27.12.2009, 22:33

Вот и я думал так сделать ! Уже написал программу, все интерактивные режимы и операции ! Блин, а теперь выяснил, что не могу графическим объектам задать атрибуты, да черт с ними, хотя бы имя объекта, атрибуты можно и отдельно хранить.

нет там никаких 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

здаётся мне, что тема не имеет отношения к Qt.

Автор: JuryS1806 27.12.2009, 23:13

тогда можете снести ее. Но если получится задать атрибуты объектов - ОПИШУ ПОДРОБНО.

А еще такой вопрос: undefined reference to ...
Как с этим бороться ? что я не так делаю ???

Автор: Litkevich Yuriy 27.12.2009, 23:32

Цитата(JuryS1806 @ 28.12.2009, 2:13) *
тогда можете снести ее.
я её перенесу в Библиотеки->Другое

Цитата(JuryS1806 @ 28.12.2009, 2:13) *
А еще такой вопрос: undefined reference to ...
Как с этим бороться ? что я не так делаю ???
не хватает include

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