crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Задать имя объекта не имея SetObjectName
JuryS1806
  опции профиля:
сообщение 26.12.2009, 23:52
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 93
Регистрация: 21.10.2009
Из: Нижний Новгород
Пользователь №: 1168

Спасибо сказали: 9 раз(а)




Репутация:   0  


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

Имею :
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
Сообщение #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


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9655
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Из твоего первого соощения, совершенно ничего не понятно.
Например, что это такое
Цитата(JuryS1806 @ 27.12.2009, 2:52) *
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


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9655
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(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
Сообщение #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


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9655
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


здаётся мне, что тема не имеет отношения к Qt.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 17.9.2019, 7:37