Переопределяйте void QWidget::contextMenuEvent ( QContextMenuEvent * event ) [virtual protected]
Ну и зачем ты это советуешь? Ведь неправильно.
Перегружать нужно QMainWindow::createPopupMenu():
C++ (Qt)
static bool cmpByText( QAction* a, QAction* b )
{
return QString::localeAwareCompare( a->text(), b->text() ) < 0;
}
QMenu* MainWindow::createPopupMenu()
{
QMenu* menu = QMainWindow::createPopupMenu();
QList< QAction* > al = menu->actions();
if( !al.isEmpty() )
{
qSort( al.begin(), al.end(), cmpByText );
foreach( QAction* a, al ) menu->addAction( a );
}
return menu;
}