Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: jatsuk от Май 09, 2011, 14:19



Название: Проверить выбрано ли действие в меню
Отправлено: jatsuk от Май 09, 2011, 14:19
Есть QMenu, там 4 действия (как радиобутон).
   
Код:
poisk1Act = new QAction(tr("&Первый поиск"), this);
    [b]poisk1Act->setCheckable(true);[/b]
    connect(poisk1Act, SIGNAL(triggered()), this, SLOT(poisk1()));

   alignmentGroup = new QActionGroup(this);
    alignmentGroup->addAction(poisk1Act);
    alignmentGroup->addAction(poisk2Act);
    alignmentGroup->addAction(poisk3Act);
    alignmentGroup->addAction(poisk4Act);
    poisk1Act->setChecked(true);

Как проверить, какой в данный момент выбран poisk

пробовал isChecked() , ошибк, говорит , что нельзя такое для QAction


Название: Re: Проверить выбрано ли действие в меню
Отправлено: lit-uriy от Май 09, 2011, 15:42
такой ошибки быть не должно, что-то ты не так пишешь в коде.

А вообще для твоего случая правильнее было бы использовать сигнал
void toggled ( bool checked )


Название: Re: Проверить выбрано ли действие в меню
Отправлено: jatsuk от Май 10, 2011, 07:08
Да, это я ошибся с isChecked() всё работает. Не работало, потому что использовал Qt::CheckState (Просто по привычке), а оно только для модели кнопок.

if (  poisk1Act->isChecked() ) И всё работает.
 
Спасибо lit-uriy