What version of KDE/kdelibs are you using? Also what icon theme are you using? Can you post the code where you are using these please. When you call KStdGuiItem::add(), what does hasIcon() return. You need to use one of the iconSet() methods to get the icon. Also what KStdAction works, since there is no KStdAction::add().

From quickly looking at the docs and source, this is KstdGuiItem::add():
Qt Code:
  1. KGuiItem KStdGuiItem::add()
  2. {
  3. return KGuiItem(i18n("Add"), "add");
  4. }
To copy to clipboard, switch view to plain text mode 

which calls constructor to KGuiItem:

Qt Code:
  1. KGuiItem::KGuiItem( const QString &text, const QString &iconName, const QString &toolTip, const QString &whatsThis )
  2. {
  3. d = new KGuiItemPrivate;
  4. d->m_text = text;
  5. d->m_toolTip = toolTip;
  6. d->m_whatsThis = whatsThis;
  7. setIconName( iconName );
  8. }
To copy to clipboard, switch view to plain text mode 

and finally setIconName():
Qt Code:
  1. void KGuiItem::setIconName( const QString &iconName )
  2. {
  3. d->m_iconName = iconName;
  4. d->m_iconSet = QIconSet();
  5. d->m_hasIcon = !iconName.isEmpty();
  6. }
To copy to clipboard, switch view to plain text mode 

We can see here that the setIconName method just creates a null QIconSet. hasIcon() should return true, since iconName is not empty. To get the icon you need to use one of the iconSet() methods, which actually creates the icons using KIconLoader:

Qt Code:
  1. QIconSet KGuiItem::iconSet( KIcon::Group group, int size, KInstance* instance ) const
  2. {
  3. if( d->m_hasIcon )
  4. {
  5. if( !d->m_iconName.isEmpty())
  6. {
  7. // some caching here would(?) come handy
  8. return instance->iconLoader()->loadIconSet( d->m_iconName, group, size, true, false );
  9. }
  10. else
  11. {
  12. return d->m_iconSet;
  13. }
  14. }
  15. else
  16. return QIconSet();
  17. }
To copy to clipboard, switch view to plain text mode 

So really the only I can think of is that it can't find the "add" icon, at least not for the size or gorup you want. It is interesting that from 3.4 to 3.5 the only thing that really changed reagarding this was using just "add" instead of "edit_add". Dunno...

Bojan