本文整理汇总了C++中QDesignerFormEditorInterface::introspection方法的典型用法代码示例。如果您正苦于以下问题:C++ QDesignerFormEditorInterface::introspection方法的具体用法?C++ QDesignerFormEditorInterface::introspection怎么用?C++ QDesignerFormEditorInterface::introspection使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QDesignerFormEditorInterface
的用法示例。
在下文中一共展示了QDesignerFormEditorInterface::introspection方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: promotionSelectionList
PromotionTaskMenu::PromotionSelectionList PromotionTaskMenu::promotionSelectionList(QDesignerFormWindowInterface *formWindow) const
{
// In multi selection mode, check for a homogenous selection (same class, same promotion state)
// and return the list if this is the case. Also make sure m_widget
// is the last widget in the list so that it is re-selected as the last
// widget by the promotion commands.
PromotionSelectionList rc;
if (m_mode != ModeSingleWidget) {
QDesignerFormEditorInterface *core = formWindow->core();
const QDesignerIntrospectionInterface *intro = core->introspection();
const QString className = intro->metaObject(m_widget)->className();
const bool promoted = isPromoted(formWindow->core(), m_widget);
// Just in case someone plugged an old-style Object Inspector
if (QDesignerObjectInspector *designerObjectInspector = qobject_cast<QDesignerObjectInspector *>(core->objectInspector())) {
Selection s;
designerObjectInspector->getSelection(s);
// Find objects of similar state
const QWidgetList &source = m_mode == ModeManagedMultiSelection ? s.managed : s.unmanaged;
const QWidgetList::const_iterator cend = source.constEnd();
for (QWidgetList::const_iterator it = source.constBegin(); it != cend; ++it) {
QWidget *w = *it;
if (w != m_widget) {
// Selection state mismatch
if (intro->metaObject(w)->className() != className || isPromoted(core, w) != promoted)
return PromotionSelectionList();
rc.push_back(w);
}
}
}
}
rc.push_back(m_widget);
return rc;
}