crossplatform.ru

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

> Инициализация объектов в цикле, или как обратиться к кнопке по имени
grio
  опции профиля:
сообщение 26.11.2009, 7:04
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 87
Регистрация: 11.11.2009
Пользователь №: 1221

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




Репутация:   0  


Задача:
Нужно проинициализировать 20 кнопок на форме. Кнопки имеют имена pbtn1, pbtn2,...pbtn20;
Как обратится к каждой из них по имени и установить, например, видимость.

В идеале нужна функция, возвращающая ссылку на объект по его имени:

ObjByName("pbtn"+i).setVisible(true);

br,
grio.

Так, отлично, сам спрашиваю - сам отвечаю :)

T QObject::findChild ( const QString & name = QString() ) const
Раскрывающийся текст

T QObject::findChild ( const QString & name = QString() ) const

Возвращает дочерний объект, который может быть приведен к типу T and и имеет имя name или 0 если такой объект не найден. Пустая строка обозначает любое имя. Поиск выполняется рекурсивно.

Если существует более чем один дочерний объект соответствующий условию, то возвращается ближайший в иерархии. Если есть несколько равнозначных объектов в иерархии, будет возвращен один из них. В этом случает лучше использовать, findChildren().

В данном примере возвращается дочерний по отношению к parentWidget объект типа QPushButton с именем "button1":
QPushButton *button = parentWidget->findChild<QPushButton *>("button1");

В данном примере возвращается дочерний по отношению к parentWidget объект типа QListWidget:
QListWidget *list = parentWidget->findChild<QListWidget *>();

Внимание: Данная функция не доступна в MSVC 6. Если Вы работаете с указанным компилятором, используйте qFindChild().

См. также findChildren() и qFindChild().
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 28.12.2024, 19:23