Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Можно ли скрыть (или деактивировать) кнопку "Свернуть" в заголовке?

Автор: hoRUS 13.7.2008, 19:44

Хочу избавиться от кнопки "Свернуть" в заголовке окна (или деактивировать её) у непосредственного потомка QWidget. Есть ли надёжный способ сделать это в Linux (желательно, чтоб это не зависело от оконного менеджера и не пришлось лезть в исходники)? Мои свистопляски с setWindowFlags() ни к чему не привели.
Пробовал

setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint  | Qt::WindowMaximizeButtonHint);
setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowMaximizeButtonHint);

и множество других комбинаций. Но либо скрывается вся рамка, либо остается только "Закрыть", либо остаются все кнопки сразу.
Может, есть системная функция какая (в Linux'е недавно). Хотя бы своя для каждого оконного менеджера.
А то сейчас идея только убрать нафиг рамку и нарисовать тулбар вручную с нужными кнопками.
Спасибо

Автор: Litkevich Yuriy 15.7.2008, 17:36

по поводу флажков:

Цитата
enum Qt::WindowType
flags Qt::WindowFlags
Данное перечисление используется для установления различных свойств оконной системы для виджета. Они довольно необычны, но необходимы в некоторых случаях. Некоторые из этих флагов зависят от того, поддерживает ли их основной оконный мененджер.
...
Есть также несколько флагов, которые вы можете использовать, чтобы настроить вид окна верхнего уровня. Они не воздействуют на другие окна:
...
Qt::WindowMinimizeButtonHint
...


проверь в Линухе работу примера: PATH_TO_EXAMPLES/widgets/windowflags
может, что-то прояснится

Автор: hoRUS 16.7.2008, 10:45

Litkevich Yuriy, точно! Забыл про этот пример!


ДОБАВЛЕНО:
Ubuntu 8.04 (основное) либо показывает все три кнопки, либо вообще не показывает рамку (gnome). SuSe 10.2 криво но работает. В KDE лучше, чем в gnome (может, из-за того, что Qt?). В KDE криво (но при некоторых условиях можно добиться), gnome - можно по крайнй мере оставит одну "закрыть"

Автор: Litkevich Yuriy 16.7.2008, 13:10

все сильно зависит от оконного менеджера!
Это ты еще во всяких Виндоумыэкерах не пробывал, там вообще чудеса могут быть

Автор: hoRUS 17.7.2008, 9:28

А там (в Линуксе или оконных менеджерах) нет никакого API (сам в Линуксе недавно :) )?

Автор: Litkevich Yuriy 17.7.2008, 10:03

у каждого оконного менеджера он свой, у Гнома свой, у КДЕ свой и т.д.

Автор: kuler 8.10.2008, 15:56

как убрать крестик (чтоб вообще кнопок не было, но был заголовок)

Автор: Litkevich Yuriy 8.10.2008, 16:00

Цитата(kuler @ 8.10.2008, 19:56) *
как убрать крестик
в смысле кнопка закрытия окна? Если да то поидее флажки должны работать, ща гляну какие

Автор: kuler 8.10.2008, 16:05

да

и как уж виджет (окно) показать посередке парента?

Автор: Litkevich Yuriy 8.10.2008, 16:08

См. пример: %QTDIR%\examples\widgets\windowflags

Цитата(kuler @ 8.10.2008, 20:05) *
показать посередке парента?
Любое окно в Qt показвается по середине родителя, если таковой есть (см. тот же пример)

Автор: kuler 8.10.2008, 16:51

не центрируется почемуто, а про крестик не глянули? в примере с windows flags нет такого, да и по справке особо не углядел

Автор: Litkevich Yuriy 8.10.2008, 17:01

Цитата(kuler @ 8.10.2008, 19:56) *
чтоб вообще кнопок не было
есть такое тыкай по одной галочке.

Цитата(kuler @ 8.10.2008, 20:51) *
не центрируется почемуто
на виндовозе этот пример всегда запускается так что дочернее окно по центру родительского. Если тебе надо чтоб при каждом появлении дочернего оно было по центру родительского, т.е. даже когда пользователь передвигал дочернее. Тоже можно, но надо в Асистент глянуть.

Автор: kuler 9.10.2008, 9:45

виджету передаю парента - не центрируется, у qdialoga - да, а у виджета нет

Автор: Litkevich Yuriy 9.10.2008, 14:13

Цитата(kuler @ 9.10.2008, 13:45) *
у qdialoga - да, а у виджета нет
тогда, наверно, руками. Мне не приходилось разбиратся с этим вопросом.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)