Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: xTr1m от Январь 11, 2011, 11:03



Название: Отслеживать доступность кнопки
Отправлено: xTr1m от Январь 11, 2011, 11:03
Доброго времени суток. Есть кнопка, в самом начале она задизаблена. При определенных условиях она становится доступной. У меня такой вопрос: есть ли в Qt какие-то специальные механизмы, которые позволяют отслеживать состояния кнопок? Для примера могу привести вариант из MFC, где можно было определить функцию с условием, которая сама периодически вызывалась и "управляла" таким образом состоянием кнопки.

Конечно я могу руками следить за всем этим делом, но Qt штука мощная, может я просто не знаю.


Название: Re: Отслеживать доступность кнопки
Отправлено: merke от Январь 11, 2011, 11:08
isEnabled() ?


Название: Re: Отслеживать доступность кнопки
Отправлено: xTr1m от Январь 11, 2011, 11:31
Нет, я имею в виду примерно следующее. Еще раз приведу аналогию с вариантом из MFC. Определяю функцию, в которой примерно такой код:

void CDialog::OnButtonPropUpdate(CCmdUI *cmd)
{
    cmd->Enable( m_list.GetSelectedItems() > 0 ? TRUE : FALSE);
}

И кнопка дизаблилась / раздизабливалась сама. То есть мне не нужно отслеживать клики на списке и т.п.


Название: Re: Отслеживать доступность кнопки
Отправлено: Пантер от Январь 11, 2011, 11:58
В Кьюте абсолютно то же самое. Коннектишь сигнал triggered у QAction в меню на свой слот, в котором и устанавливаешь setEnabled.


Название: Re: Отслеживать доступность кнопки
Отправлено: twp от Январь 11, 2011, 12:28
В Qt нет прямого аналога как в MFC или Delphi, который используется в этом примере


Название: Re: Отслеживать доступность кнопки
Отправлено: _govorilka от Январь 11, 2011, 13:27
При это несколько QAction можно объединить с помощью QActionGroup.


Название: Re: Отслеживать доступность кнопки
Отправлено: xTr1m от Январь 11, 2011, 15:05
Всем спасибо, картина стала мне ясна