Инициализация объектов в цикле, или как обратиться к кнопке по имени |
Здравствуйте, гость ( Вход | Регистрация )
Инициализация объектов в цикле, или как обратиться к кнопке по имени |
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(). |
|
|
Текстовая версия | Сейчас: 28.12.2024, 19:23 |