Russian Qt Forum
Ноябрь 26, 2024, 14:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как убрать крестик закрытия окна?  (Прочитано 11498 раз)
helga1917
Гость
« : Август 22, 2013, 12:25 »

Здравствуйте, нужно убрать крестик с окна и оставить только сворачивание/разворачивание.
Я нашла только, как его можно сделать не активным. А можно ли совсем убрать этот крестик?
 
Код:
window.setWindowFlags (Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonHint);
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Август 22, 2013, 12:55 »

можно вообще лишить окна рамки и самому нарисовать ее Улыбающийся
а там уж сами решите, что оставить из системных кнопок, а что из своих добавить )
Записан

helga1917
Гость
« Ответ #2 : Август 22, 2013, 13:02 »

хорошо, а какими средствами ее рисовать?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Август 22, 2013, 16:28 »

Здравствуйте, нужно убрать крестик с окна и оставить только .
Окно диалога всегда должно иметь этот "крестик".
Если вам требуется его убрать, значит имеются какие-то проблемы с логикой.
Также по-хорошему, диалогу не стоит позволять "сворачивание/разворачивание".
Записан

Qt 5.11/4.8.7 (X11/Win)
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #4 : Август 22, 2013, 18:17 »

хорошо, а какими средствами ее рисовать?
Для этого всегда убираем рамку окна
убрав рамку, не сможете перетаскивать окно и менять его размер, а также пропадут системные кнопки: свернуть, развернуть и закрыть, поэтому придется самому переопределять нужные события (paintEvent, mouseMoveEvent, mousePressEvent, mouseReleaseEvent)
paintEvent - для отрисовки (он не обязателен, если вы оставите окно, если полностью окно убрать, придется рисовать его самой или маску накладывать)
mouseMoveEvent, mousePressEvent, mouseReleaseEvent: перемещение и изменение размера окна

Если вы еще не передумали (какая вы упрямая Веселый), то посмотрите на форуме или погуглите -подобных тем куча! Подмигивающий
Записан

helga1917
Гость
« Ответ #5 : Август 23, 2013, 07:48 »

 благодарю, желание этим заниматься поубавилось, надеюсь не придется
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #6 : Август 23, 2013, 08:26 »

убрать достаточно просто, скопировал из примера (Qt::WindowSystemMenuHint - помоему не нужно)
Код:
ShapedClock::ShapedClock(QWidget *parent)
     : QWidget(parent, Qt::FramelessWindowHint | Qt::WindowSystemMenuHint)
это актуально когда вам жалко тратить свободное место монитора, на элементы не несущие полезную информацию.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.162 секунд. Запросов: 23.