Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Danila_Bagrofff от Апрель 21, 2009, 13:03



Название: Убрать "Закрыть окно" и действия с заголовка
Отправлено: Danila_Bagrofff от Апрель 21, 2009, 13:03
Есть диаложка, на которой по умолчанию размещается на title вверху справа кнопка "Закрыть окно" (крестик). Так вот. Надо оставить голый title.

Нашел как заменить его. Но как убрать и другое???

Что-то не получается...

Код:
MyDialog::MyDialog(QWidget *parent)
{
    setWindowFlags(Qt::WindowMinimizeButtonHint);
}

И как убрать возможность каких-либо стандартных действий с окном?


Название: Re: Убрать "Закрыть окно"
Отправлено: pastor от Апрель 21, 2009, 13:04
QTDIR\examples\widgets\windowflags\


Название: Re: Убрать "Закрыть окно"
Отправлено: Danila_Bagrofff от Апрель 21, 2009, 13:14
ага, нашел =)

Код:
setWindowFlags(Qt::WindowMinimizeButtonHint | Qt::Dialog);


Название: Re: Убрать "Закрыть окно" и дейсствия с title
Отправлено: Danila_Bagrofff от Апрель 21, 2009, 13:22
А как убрать возможность каких-либо стандартных действий с заголовком окна?


Название: Re: Убрать "Закрыть окно" и действия с заголовка
Отправлено: Rcus от Апрель 21, 2009, 14:34
Что значит каких-либо? Ну есть один 100% работающий способ - отключить заголовок :)


Название: Re: Убрать "Закрыть окно" и действия с заголовка
Отправлено: Danila_Bagrofff от Апрель 21, 2009, 14:54
Тема также здесь: http://www.forum.crossplatform.ru/index.php?showtopic=2628

Что значит каких-либо? Ну есть один 100% работающий способ - отключить заголовок :)

Это не вариант. Точнее уже пройденный этап. Хочется именно стандартное обломить.
Есть события иксов в линуксе. Но как использовать это:
Цитировать
x11Event ( XEvent * ) : bool
я не знаю.


Название: Re: Убрать "Закрыть окно" и действия с заголовка
Отправлено: Rcus от Апрель 21, 2009, 15:03
Ну этот вопрос уже несколько раз поднимали, и насчет иконки, и насчет размеров...

А мне вот пофиг на то что хочет приложение, я вот kwin'ом ставлю плеер наверх, включаю opacity 75% и отключаю декорацию. И то приложение которое не захочет подчиняться wm'у подлежит удалению :)


Название: Re: Убрать "Закрыть окно" и действия с заголовка
Отправлено: Danila_Bagrofff от Апрель 21, 2009, 15:08
а никогда не пытался событие иксам просто отрубить?

может, было бы намного проще?....


Название: Re: Убрать "Закрыть окно" и действия с заголовка
Отправлено: SABROG от Апрель 21, 2009, 15:16
Код
C++ (Qt)
   QDialog dlg(this, Qt::CustomizeWindowHint | Qt::WindowTitleHint);
 

(http://pic.ipicture.ru/uploads/090421/z4wR4QUQT7.png)

Хочу напомнить, что использование setWindowFlags() может не дать результатов в отличае от передачи флагов в конструкторе QWidget'a.


Название: Re: Убрать "Закрыть окно" и действия с заголовка
Отправлено: Danila_Bagrofff от Апрель 21, 2009, 15:28
Код
C++ (Qt)
   QDialog dlg(this, Qt::CustomizeWindowHint | Qt::WindowTitleHint);
 

(http://pic.ipicture.ru/uploads/090421/z4wR4QUQT7.png)

Хочу напомнить, что использование setWindowFlags() может не дать результатов в отличае от передачи флагов в конструкторе QWidget'a.

с этим проблем нет. Это все сделал.

А вот стандартный вызов действий иксов, При нажатии на правую клавишу, убить не получается. КАк и действие при нажатии на иконку.


Название: Re: Убрать "Закрыть окно" и действия с заголовка
Отправлено: Rcus от Апрель 21, 2009, 15:34
В этом вся суть иксов. Декорация окна принадлежит не клиентскому приложению, а WM'у. Приложение может попросить wm убрать декорацию или изменить какие-то вещи, а wm может проигнорировать это. Даже отключение декораций (например Audacious) не всегда работает, контекстное меню kwin'а вызывается нормально и там можно включить декорацию обратно.


Название: Re: Убрать "Закрыть окно" и действия с заголовка
Отправлено: Danila_Bagrofff от Апрель 21, 2009, 15:47
а поподробнее можно? примеры какие-нить?


Название: Re: Убрать "Закрыть окно" и действия с заголовка
Отправлено: lit-uriy от Апрель 21, 2009, 16:06
>>И то приложение которое не захочет подчиняться wm'у подлежит удалению
солидарен.