LINUX.ORG.RU

setWindowFlags в qt

 ,


0

1

Помогите разобраться с setWindowFlags =)

Не могу понять, как убирать/добавлять некоторые полезные баттоны.

Вот такой код у меня:


ui->setupUi(this);
 
setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint |
                   Qt::WindowMinimizeButtonHint |// кнопка сворачивания
                   Qt::WindowMaximizeButtonHint |// кнопка разворачивания
                   Qt::WindowCloseButtonHint |//кнопка красный крестик
                   Qt::WindowSystemMenuHint |
                   Qt::WindowContextHelpButtonHint );// кнопка-вопросик тут должна появиться, но не появилась
 
this->setAttribute(Qt::WA_CustomWhatsThis);

Стандартные кнопки свернуть-развернуть-закрыть появляются или пропадают если я добавляю или удаляю этот флаг. Все логично.

Но вот флаг Qt::WindowContextHelpButtonHint, который мне так неистово нужен не работает =(

А должна появляться кнопочка "?" - подсказка «Что это?». И последняя строчка тоже эффекта не дает.

Qt 5.3.0, linux аля ubunta.

ЧЯДНТ?

P.S. Зачем два первых флага? Справку я прочитала, только не поняла, почему ничего не меняется, если их убрать.

P.P.S. Всем заранее спасибо! ;)

В QtCreator смотрели пример Window Flags Example?

P.S. Кнопка с вопросом, если я правильно помню, есть только на Windows, в Linux оконные менеджеры ее рисовать не умеют.

CrossFire ★★★★★
()
Последнее исправление: CrossFire (всего исправлений: 1)

Qt::CustomizeWindowHint отключает «умолчальные» хинты (заголовок, кнопки закрытия и т.п.), а Qt::WindowTitleHint добавляет заголовок окна, как ни странно.
Кстати в доке написано, что

On some platforms this implies Qt::WindowSystemMenuHint for it to work.

Т.е. тебе желательно добавить Qt::WindowSystemMenuHint.

m0rph ★★★★★
()
Последнее исправление: m0rph (всего исправлений: 1)

А должна появляться кнопочка "?" - подсказка «Что это?». И последняя строчка тоже эффекта не дает.

Видимо в Ubuntu не работает, это зависит от Windows Manager.

EXL ★★★★★
()
Ответ на: комментарий от CrossFire

KWin может, правда я этот Window Flags Example потыкал, он вообще ни на что не влияет. Ни в KWin, ни в OpenBox.

EXL ★★★★★
()
Ответ на: комментарий от TatianaSh

А что именно через Ж? И что работает? У меня, например, вообще ничего не работает.

а не как должно быть.

Ну это же Desktop Linups. Тут 10 DE, 20 WM и куча приложений копирующих один и тот же функционал, вместо того чтобы объединить усилия. Хорошо бы было, если бы этим занимались иксы, чтобы был хоть какой-то стандарт, но, как видно, всем пофиг.

EXL ★★★★★
()
Ответ на: комментарий от m0rph

Дело в том, что если убрать Qt::CustomizeWindowHint, ничего не меняется. Так же и с Qt::WindowTitleHint

Qt::WindowSystemMenuHint добавлять пробовала, нихт результат.

TatianaSh
() автор топика
Ответ на: комментарий от EXL

«А что именно через Ж?» Не так, как в win7 работает.

-при запуске нет кнопочки свернуть -ставим | Qt::WindowMinimizeButtonHint - все три кнопки исчезли -Qt::WindowContextHelpButtonHint - опять все кнопки самоликвидировались)) -дальше надоело искать отличия

TatianaSh
() автор топика
Ответ на: комментарий от UVV

Потому что модераторы сегодня отдыхают.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Не появляется.

Я ее нигде не видела, но она и в win не сильно популярная. Как-то не думала, что ее может вообще не быть в linux`е.

TatianaSh
() автор топика
Ответ на: комментарий от TatianaSh

Я вот тут Убрать StayOnTop экспериментировал. Если это гномовский WM, то без вариантов. Разве что в новых версия они пофиксили эти баги.

UVV ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.