Вам нужно идти от обратного, не action добавлять в кнопку, а использовать для своих действий action полученный после добавления кнопки.
Первый вариант с пустым Экшеном меня устраивает. Все работает как задумал.
А вот со вторым вариантом запутался. Action не понимает setPopupMode и setContextMenuPolicy, которые навешаны на кнопку. Т .е. если идти от обратного дороже обходится. В то врем как в первом варианте достаточно оказалось поменять одну строчку во всей конструкции. Выглядит криво, но работает, вроде, корректно.
Возможно, мой маленький опыт не позволяет все понять и я не все правильно делал.
Но вот как работает:
C++ (Qt)
myAction = new QAction( QIcon( ":/icons/icon1.png" ), tr( "blabla" ), this );
myButton = new QToolButton( Toolbar );
myButton ->setPopupMode( QToolButton::MenuButtonPopup );
myButton->setMenu( myMenu );
myButton->setDefaultAction( myAction );
myButton->setIcon( QIcon (":/icons/icon2.png") );
myButton->setContextMenuPolicy( Qt::CustomContextMenu );
anyAction = Toolbar->addWidget(myButton);
connect( myButton, SIGNAL( customContextMenuRequested( const QPoint & ) ),
this, SLOT( myAction2() ) );
Если не затруднит как бы вы переписали код?
Спасибо за помощь! В любом случае проблема решена.