Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Bzzzuka от Май 13, 2012, 19:48



Название: What's this
Отправлено: Bzzzuka от Май 13, 2012, 19:48
Хочу использовать в программе функцию "What's this" в свое программе но при добавлении флага Qt::WindowContextHelpButtonHint исчезает возможность сворачивать форму. Была идея добавлять флаг при нажатии на кнопку F1 а при повторном нажатии возвращать стандартные кнопки, вот часть кода:
void MainWindow::keyPressEvent(QKeyEvent *event){
    event->accept();
    if (event->key() == Qt::Key_F1)
    this->setWindowFlags(Qt::WindowContextHelpButtonHint);
}
при нажатии на F1 форма закрывается, следовательно так делать нельзя.
Так как подружить вопрос со сворачиванием?


Название: Re: What's this
Отправлено: kambala от Май 13, 2012, 20:23
а ты добавляешь так?
Код
C++ (Qt)
setWindowFlags(windowFlags() | Qt::WindowContextHelpButtonHint);


Название: Re: What's this
Отправлено: Bzzzuka от Май 13, 2012, 20:33
если вызвать так:
Код:
this->setWindowFlags(this->windowFlags() | Qt::WindowContextHelpButtonHint);
то выводяться только стандартные кнопки, вопроса нет.


Название: Re: What's this
Отправлено: Странник от Май 14, 2012, 08:56
Винда сурова:
Цитировать
WS_EX_CONTEXTHELP cannot be used with the WS_MAXIMIZEBOX or WS_MINIMIZEBOX styles

но вы можете реализовать переход в режим контекстной помощи самостоятельно. смотрите в сторону
Цитировать
void QWhatsThis::enterWhatsThisMode () [static]
bool QWhatsThis::inWhatsThisMode () [static]
void QWhatsThis::leaveWhatsThisMode () [static]