Russian Qt Forum
Октябрь 02, 2024, 11:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Для чего нужен objectName()?  (Прочитано 5023 раз)
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« : Июнь 14, 2013, 14:36 »

Кроме как для findChildren() он где нибудь используется?  Улыбающийся
Записан

mutineer
Гость
« Ответ #1 : Июнь 14, 2013, 14:48 »

В qml им можно пользоваться
Записан
Bepec
Гость
« Ответ #2 : Июнь 14, 2013, 14:52 »

ObjectName является уникальным идентификатором объекта. Типа GUID'а.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Июнь 14, 2013, 15:01 »

например, задавать стиль через CSS.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #4 : Июнь 14, 2013, 16:58 »

можно в слоте sender() идентифицировать по objectName
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Июнь 14, 2013, 17:42 »

Кроме как для findChildren() он где нибудь используется?  Улыбающийся
Странный вопрос - это базовая возможность. Доступ к контролу по адресу совсем не общий, и хранить адрес часто накладно. Нормальная ситуация - загрузка UI из ресурсов, как в нативных OS. Тогда адреса вообще изначально нет, как обратимся к контролу?
Записан
tester64
Гость
« Ответ #6 : Июнь 14, 2013, 19:29 »

ObjectName является уникальным идентификатором объекта. Типа GUID'а.

Нет. Имена вполне могут быть одинаковыми.
findChildren("name") возвратит список объектов с именем "name".
findChild("name") возвратит первый найденный объект с именем "name". Поиск идёт по степеням отстояния в объектной иерархии, т.е. если имеется два одноимённых объекта, один - непосредственный потомок, а другой - "внучатый", то возвращён будет первый. Если отстояние одинаковое, то результат неопределён.

В какой-то мере это нечто среднее между именованием по id и name в html.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #7 : Июнь 15, 2013, 15:26 »

>Доступ к контролу по адресу совсем не общий,
А какой общий?
> и хранить адрес часто накладно.
Хранить адрес (4 байта) накладнее, чем хранить строку длинной Х байт?
« Последнее редактирование: Июнь 15, 2013, 15:30 от lit-uriy » Записан

Юра.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Июнь 15, 2013, 15:45 »

>Доступ к контролу по адресу совсем не общий,
А какой общий?
> и хранить адрес часто накладно.
Хранить адрес (4 байта) накладнее, чем хранить QString длинной Х*2 байт?
Здесь дело не в байтах.
Код
C++ (Qt)
edit1->setText("abc");
 
Все хорошо, но надо иметь edit1 который, вероятно, член класса. А теперь так
Код
C++ (Qt)
MyUitls::SetText(this, "edit_1", "abc");
// или еще лучше с константой
MyUitls::SetText(this, EDIT_1, "abc");  
 
Так надо написать SetText и вызов длиннее. Зато это можно использовать в любом окне (было бы имя). Можно находить первый видимый "edit_1". Можно делать операции в цикле напр для контролов имена которых начинаются с какой-то строки. Словом возможностей гораздо больше
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #9 : Июнь 18, 2013, 14:04 »

Кроме как для findChildren() он где нибудь используетсяУлыбающийся
Очень даже. Я в одном из проектов всем дочерним виджетам давал осмысленные имена. Например, для кнопок - имя функции. И обрабатывал все кнопки в одном месте. Для CheckBox-ов - обозначение места, куда помещать флажок (0, 1)  и т.д.
В общем, вы можете использовать objectName, как вам заблагорассудиться, и иногда это бывает и полезно, и красиво.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.081 секунд. Запросов: 23.