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().
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 2)
niXman
  опции профиля:
сообщение 26.11.2009, 7:36
Сообщение #2


Участник
**

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

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




Репутация:   0  


QSignalMapper
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.11.2009, 7:40
Сообщение #3


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

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

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




Репутация:   94  


и ещё имеет смысл посмотреть штатный пример "Калькулятор" (там как раз много кнопочек)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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