Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Май 22, 2016, 10:20



Название: "простое" контекстное меню
Отправлено: Igors от Май 22, 2016, 10:20
Добрый день

В большинстве случаев при вызове конекстного меню (юзер где-то нажал правую кнопку) мне совершенно не нужно и неудобно разводить многочисленные слот/сигналы. Я хочу простое человеческое меню (по 20 копеек) которое возвращает мне индекс выбранного айтема. Как это лучше сделать?  Или может что-то есть готовое?

Спасибо


Название: Re: "простое" контекстное меню
Отправлено: GreatSnake от Май 22, 2016, 13:30
Код
C++ (Qt)
QMenu menu;
QMap< int, QAction* > al;
enum { Cut, Copy, Paste };
 
al[ Cut ] = menu.addAction( tr( "Cut" ) );
al[ Copy ] = menu.addAction( tr( "Copy" ) );
al[ Paste ] = menu.addAction( tr( "Paste" ) );
 
switch( al.key( menu.exec( QCursor::pos() ), -1 ) )
{
       case Cut:
               break;
       case Copy:
               break;
       case Paste:
               break;
};
 
 


Название: Re: "простое" контекстное меню
Отправлено: Igors от Май 22, 2016, 13:58
Да, такой простой вариант почему-то совсем не пришел мне в голову  :)
Спасибо