Название: Кнопка "развернуть" Отправлено: gosen от Февраля 14, 2010, 03:10 Здравствуйте) Цель: сделать так чтобы у главного окна были только кнопки "Закрыть" и "Свернуть"... Почитал про флаги и т п.. Написал вот это:
mainWin.setWindowFlags(Qt::Window | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint); Но кнопка "развернуть" всё равно есть) Что делаю не так? Как решить проблему? ??? Название: Re: Кнопка "развернуть" Отправлено: shirushizo от Февраля 14, 2010, 06:25 Qt::WindowMinimizeButtonHint : Adds a minimize button. On some platforms this implies Qt::WindowSystemMenuHint for it to work.
WinXP, как я понимаю, это и есть одна из этих "некоторых" платформ.Т.е. кнопка "развернуть" будет отрисована, но если не указан Qt::WindowMaximizeButtonHint, будет недоступна. Можно использовать Qt::WindowTitleHint - будет только "закрыть". Название: Re: Кнопка "развернуть" Отправлено: gosen от Февраля 14, 2010, 11:27 Ну во первых, делал много манипуляций с флагами и "развернуть" всегда была)) А во вторых почему ты решил что у меня WinXP? ОС: Ubuntu 9.10))
На счёт Qt::WindowTitleHint спс, попробую=) Название: Re: Кнопка "развернуть" Отправлено: gosen от Февраля 14, 2010, 12:50 Когда ставлю Qt::WindowTitleHint всё равно есть "развернуть"...
Название: Re: Кнопка "развернуть" Отправлено: lit-uriy от Февраля 14, 2010, 14:28 gosen, если ты для виджета-окна установишь фиксированный размер, то эта кнопка автоматически станет не активной.
Название: Re: Кнопка "развернуть" Отправлено: gosen от Февраля 14, 2010, 16:24 lit-uriy, спасибо большое)) Это то что нужно=)
Название: Re: Кнопка "развернуть" Отправлено: shirushizo от Февраля 18, 2010, 12:04 Ну во первых, делал много манипуляций с флагами и "развернуть" всегда была)) А во вторых почему ты решил что у меня WinXP? ОС: Ubuntu 9.10)) Ну насчет ОС я не утверждал, я просто у себя проверил. А эти флаги у меня делали кнопку неактивной.На счёт Qt::WindowTitleHint спс, попробую=) Название: Re: Кнопка "развернуть" Отправлено: waster от Марта 08, 2010, 18:05 Ну во первых, делал много манипуляций с флагами и "развернуть" всегда была)) А во вторых почему ты решил что у меня WinXP? ОС: Ubuntu 9.10)) В морг. Поменяешь стиль и вся программа станет выглядеть шиворот-навыворот! Поставь ради эксперимента крупные шрифты и тему с чёрным фоном для дальтоников... Название: Re: Кнопка "развернуть" Отправлено: toggetit от Марта 22, 2011, 11:15 Добрый день!
Может немного не по теме, но не нашёл более подходящей ветки, поэтому пишу сюда. Я тут реализовывал перехват нажатия кнопки "свернуть" с целью не минимизации окна, а его полного сокрытия "hide()". Дык вот отсюда вопрос - когда я обратно вызываю show() из другого места, окно становится видимым, но свёрнутым. Нет ли способа (метода) принудительного разворачивания окна? Я вот что-то не нашёл. Заранее спасибо! Название: Re: Кнопка "развернуть" Отправлено: Пантер от Марта 22, 2011, 11:19 Код
Вот так работает. Название: Re: Кнопка "развернуть" Отправлено: Sahab от Марта 22, 2011, 11:43 activateWindow()
Цитировать On Windows, if you are calling this when the application is not currently the active one then it will not make it the active window. It will change the color of the taskbar entry to indicate that the window has changed in some way. This is because Microsoft does not allow an application to interrupt what the user is currently doing in another application. причем вызываю для венды 2 раза ... т.к. только после этого моргает постоянно, иначе единоразовоНазвание: Re: Кнопка "развернуть" Отправлено: Пантер от Марта 22, 2011, 11:49 Просто activateWindow не всегда срабатывает.
Название: Re: Кнопка "развернуть" Отправлено: Sahab от Марта 22, 2011, 13:46 что значит не всегда?.... рулетко?
Если вызвать один раз моргает один раз, ВСЕГДА. Если два раза - постоянно Название: Re: Кнопка "развернуть" Отправлено: Пантер от Марта 22, 2011, 13:49 Мне не мигание нужно было, а чтобы окно встало на первый план.
Название: Re: Кнопка "развернуть" Отправлено: Sahab от Марта 22, 2011, 13:50 activateWindow()
Цитировать On Windows, if you are calling this when the application is not currently the active one then it will not make it the active window. It will change the color of the taskbar entry to indicate that the window has changed in some way. This is because Microsoft does not allow an application to interrupt what the user is currently doing in another application. Код: void MainWindow::showAndActivate () Название: Re: Кнопка "развернуть" Отправлено: Пантер от Марта 22, 2011, 14:11 Хм. У меня такое работало... Тоже в Win7.
Название: Re: Кнопка "развернуть" Отправлено: toggetit от Марта 22, 2011, 15:05 Спасибо, сейчас попробую.
[UPD] Рецепт отлично заработал. Win7 x64 |