Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Vladimir от Июнь 08, 2012, 11:54



Название: Убрать кнопку "свернуть" в QDialog
Отправлено: Vladimir от Июнь 08, 2012, 11:54
Помогите плиз убрать кнопку "свернуть" с формы диалогового окна! Перепробовал уже кучу способов максимум, что получилось это по нажатию на кнопку свернуть, оно перерисовывается, но не сворачивается.. как ее вообще убрать с окна??! должна быть только кнопка "закрыть"! Дело под Linux!

Так по нажатию на "свернуть" форма перерисовывается, но не сворачивается!!!
Код:
QDialog d (this);
d.setWindowFlags (Qt::WindowType_Mask | Qt::WindowCloseButtonHint);

Пробовал так, тоже не работает.. :(
Код:
QDialog d (this);
d.setWindowFlags (d.windowFlags() & ~Qt::WindowMinimizeButtonHint);


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: Serr500 от Июнь 08, 2012, 12:02
Посмотрите пример examples/widgets/windowflags. Там можно понаставить галок в чекбоксах и выбрать вид, который нужен.

P.S. Сейчас под виндой и не уверен, что под линухом набор флагов будет таким же.


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: GreatSnake от Июнь 08, 2012, 12:10
Дело под Linux!
А вот это ни о чём не говорит.
Какой WindowManager, окружение?


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: Vladimir от Июнь 08, 2012, 12:18
Дело под Linux!
А вот это ни о чём не говорит.

Кстати, да)
Linux OpenSuse 11.4(i586) KDE 4.6.00 (4.6.0) "release 6"


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: Vladimir от Июнь 08, 2012, 12:29
Посмотрите пример examples/widgets/windowflags. Там можно понаставить галок в чекбоксах и выбрать вид, который нужен.

P.S. Сейчас под виндой и не уверен, что под линухом набор флагов будет таким же.

Глянул этот пример.. для формы нужного мне вида, там достаточно 2х флагов Qt::X11BypassWindowManagerHint и
Qt::WindowCloseButtonHint, но с ними у меня диалог вообще не открывется.. Другие комбинации тоже пока ни к чему не привели.. ((


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: Serr500 от Июнь 08, 2012, 13:03
Флаг Qt::Dialog не забыли?


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: Vladimir от Июнь 08, 2012, 14:06
Флаг Qt::Dialog не забыли?

забыл.. но его добавление в сущности ничего не поменяло! в том примере с чекбоксами достаточно вообще Qt::Dialog и Qt::WindowCloseButtonHint и будет красивая форма с одной только кнопкой "закрыть".. здесь же все равно остается кнопка "свернуть"! может действительно в настройках линуха надо что-то менять..


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: vizir1989 от Июнь 08, 2012, 14:40
попробуй так создать диалог
Код:
Qt::WindowFlags flags = Qt::Window | Qt::WindowMaximizeButtonHint
| Qt::WindowCloseButtonHint
QDialog(this, flag)


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: Vladimir от Июнь 08, 2012, 14:53
попробуй так создать диалог
Код:
Qt::WindowFlags flags = Qt::Window | Qt::WindowMaximizeButtonHint
| Qt::WindowCloseButtonHint
QDialog(this, flag)

кнопка все равно создается, но окно не сворачивается, а перерисовывается.. так же как и с
Код:
QDialog d (this);
d.setWindowFlags (Qt::WindowType_Mask | Qt::WindowCloseButtonHint);


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: vizir1989 от Июнь 08, 2012, 15:22
попробуй так создать диалог
Код:
Qt::WindowFlags flags = Qt::Window | Qt::WindowMaximizeButtonHint
| Qt::WindowCloseButtonHint
QDialog(this, flag)

кнопка все равно создается, но окно не сворачивается, а перерисовывается.. так же как и с
Код:
QDialog d (this);
d.setWindowFlags (Qt::WindowType_Mask | Qt::WindowCloseButtonHint);


странно, у меня Fedora 14, диалог без кнопки сворачивания появляется


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: Vladimir от Июнь 08, 2012, 22:44
ну а на suse не хочет, к сожалению.. еще мысли будут, в чем может быть дело?!


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: Vladimir от Июнь 21, 2012, 12:26
Помогли флаги Qt::Drawer | Qt::WindowCloseButtonHint - остается одна кнопка "закрыть"! Но при этом окно становится не модальным, как добиться модальности окна при флаге Qt::Drawer???!


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: kambala от Июнь 21, 2012, 13:31
Qt::Drawer же только для мак ос вроде. а модальность можно задать через setWindowModality()


Название: Re: Убрать кнопку "свернуть" в QDialog
Отправлено: Vladimir от Июнь 21, 2012, 14:22
да.. под мак ос, но других способов убрать кнопку под Linux OpenSuSE 11.4 я не нашел! Получается нужное диалоговое окно, вот только ни разу не модальное) с Qt::Dialog кнопка ну никак не убирается, но с модальностью проблем нет) вот такая засада..