Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: ManOfOrange от Декабрь 22, 2010, 16:16



Название: Ячейка с выпадающим меню
Отправлено: ManOfOrange от Декабрь 22, 2010, 16:16
Здравствуйте!

Есть необходимость менять в ячейке таблицы значения из определённого списка.
В своём делегате прописал  в createEditor создание QMenu, на него повесил несколько QAction, теперь всё красивенько отображается.

А теперь туплю и никак не могу понять, как мне получить тот QAction (ту строку в меню), по которому кликнули, чтобы потом записать куда нужно данные.

Подскажите, пожалуйста :-)


Название: Re: Ячейка с выпадающим меню
Отправлено: alexman от Декабрь 22, 2010, 16:18
QComboBox используй!


Название: Re: Ячейка с выпадающим меню
Отправлено: shirushizo от Декабрь 22, 2010, 22:04
QComboBox используй!
Намного лучше=) А если религия и/или идеология не позволяют - соединяй все QAction с одним слотом и обрабатывай нажатие.

Код:
//при создании редактора
menu->addAction (tr("Action1"), this, SLOT(actionClick()));
...

void MyDelegate::actionClick()
{
   QString selectedText = (qobject_cast<QAction*>(sender()))->text();
   //обработка...
}

С QComboBox в качестве редактора все проще - есть метод currentText() и currentIndex(). :D


Название: Re: Ячейка с выпадающим меню
Отправлено: ManOfOrange от Декабрь 23, 2010, 14:33
Тьфу ты, а QComboBox-то я и не приметил. Видимо, совсем заработался :-)

Скорее всего, возьму его, но и разъяснение с menu и action пригодится :-)

Большое спасибо за помощь :-)