crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в кнопка "?" - what's this
Введите ваше имя
Подтвердите код

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

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
quarz Дата 10.5.2011, 13:22
  Разобрался :)
Режим WhatsThis при включении инициирует событие QEvent::EnterWhatsThisMode, в его обработчике и надо выключать режим.
Часть кода для минимального примера:
Раскрывающийся текст
bool aboutTest::event(QEvent *mEvent)
{  
    if(mEvent->type() == QEvent::EnterWhatsThisMode)    //не даем войти в режим WhatsThis
        QWhatsThis::leaveWhatsThisMode();
    else if (mEvent->type()==QEvent::QueryWhatsThis)    //при нажатии на "?" показываем окно "О программе"
    {
        about();
    }
    return QMainWindow::event(mEvent);
}

void aboutTest::about()
{
    QMessageBox::about(this, tr("About Icons"),
            tr("The <b>Icons</b> example illustrates how Qt renders an icon in "
               "different modes (active, normal, disabled, and selected) and "
               "states (on and off) based on a set of images."));
}

А вопрос о целесообразности такого применения остается
quarz Дата 10.5.2011, 11:59
  тогда спрошу иначе:

почему никто не использует кнопку "?" для отображения окна "О программе", это же удобно? На всех форумах спрашивают только как ее скрыть.
Или я что-то не понимаю в интерфейсах?
quarz Дата 6.5.2011, 17:14
  Все знают кнопку "?" в заголовке окна, которая запускает режим What's this.
Я хочу при нажатии на нее показывать окно с инфой о программе (для маленьких приложений, состоящих из одной формы и без меню это бывает очень нужно).
Нажатие на кнопку я научился перехватывать через событие QEvent::QueryWhatsThis. А вот режим What's this, в котором меняется указатель мыши и ждет клика на какой-нить элемент формы, у меня отключить не получается.
Есть способы это сделать?

P.S. нашел интересный атрибут у виджетов WA_CustomWhatsThis: Indicates that the widget wants to continue operating normally in "What's This?" mode.
По умолчанию он отключен, включение ничего не меняет. И как-то подозрительно мало в инетрнете об этом написано.

Еще нашел класс QWhatsThis, у которого есть статические методы enterWhatsThisMode(), leaveWhatsThisMode() и inWhatsThisMode().
При нажатии на кнопку "?" я в обработчике события вижу, что происходит вход в режим WhatsThis. Но программный выход из режима тоже ничего не меняет.
Курсор по-прежнему остается Qt::WhatsThisCursor и ждет клика по контролу :(
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 1:08