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