У нас есть приложение со сложной иерархией виджетов, и я хочу иметь возможность просматривать эту иерархию, просматривать и редактировать свойства (например, размер) аналогично Spy++. Его не нужно запускать во внешнем приложении, если есть виджет, который может отображать эту информацию. Итак, вопрос в том, существует ли такой мифический зверь?
Есть ли виджет Qt для просмотра иерархии виджетов в приложении (аналог Spy++)?
Ответы (3)
вы можете использовать Gammaray для шпионских виджетов, слотов сигналов, таймеров, ресурсов и т. д. Gammaray — очень мощный инструмент для шпионское приложение Qt
Обычный подход состоит в том, чтобы создать такого монстра своими силами, используя API-интерфейсы самоанализа и проходя иерархию родитель-потомок QWidget. Базовый построить довольно легко; если вы хотите создать полноценный редактор свойств, это значительно больше работы. Вероятно, есть код, который вы можете повторно использовать, чтобы сократить объем работы — возможно, даже код инспектора свойств из Designer, хотя это может быть излишним. Я никогда не заходил так далеко, как полный графический интерфейс, из-за нехватки времени - я просто выгрузил иерархию и некоторые фиксированные свойства в стандартный вывод в виде текста или XML.
Я полагаю, что было бы правдоподобно сделать из этого повторно используемый компонент графического интерфейса, который можно было бы поместить в произвольное приложение, искать виджеты верхнего уровня и позволять все проверять, если у вас есть время и желание.
QAbstractItemModel
.
- person the_mandrill; 29.10.2010
Не браузер, но полезен при отладке...
void QObject::dumpObjectTree() const
Выводит дерево дочерних элементов в вывод отладки.