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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Реакции на нативные баттоны  (Прочитано 4294 раз)
wenny
Гость
« : Июнь 17, 2016, 12:58 »

Доброго времени суток. Никак не могу соорудить запрос гуглу. Как заменить реакции при активации этих баттонов? Спасибо.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Июнь 17, 2016, 13:00 »

Это системные кнопки. Вы можете нарисовать свои или переопределить события виджетов и там настроить свою логику

зы. не знаю как вам, а мне "баттоны" ассоциируют с хлебом, а не кнопками или buttons Веселый
Записан

wenny
Гость
« Ответ #2 : Июнь 17, 2016, 13:14 »

переопределить события виджетов и там настроить свою логику
Вот, я про это и спрашиваю. Как это сделать? Я хочу на сворачивалку повесить свое событие (хочу иконку в трей отправлять, а не на панель задач).

не знаю как вам, а мне "баттоны" ассоциируют с хлебом, а не кнопками или buttons Веселый
Нет, у меня ассоциации именно с кнопками. А у Вас, видимо, примерно так (Смеющийся):
« Последнее редактирование: Июнь 17, 2016, 13:17 от wenny » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #3 : Июнь 17, 2016, 13:29 »

Когда давно тут делал такое:

Код
C++ (Qt)
void Manager::closeEvent( QCloseEvent * event )
{
   event->ignore();
 
   bool minimizeTrayWhenClosing = pageSettings->mapSettings[ "MinimizeTrayWhenClosing" ].toBool();
   if ( minimizeTrayWhenClosing )
       hide();
   else
       quit();
}
void Manager::changeEvent( QEvent * event )
{
   QEvent::Type type = event->type();
 
   if ( type == QEvent::WindowStateChange )
   {
       bool minimizeTrayWhenMinimizing = pageSettings->mapSettings[ "MinimizeTrayWhenMinimizing" ].toBool();
       if ( isMinimized() && minimizeTrayWhenMinimizing )
       {
           event->ignore();
           QTimer::singleShot( 0, this, SLOT( hide() ) );
           return;
       }
   }
 
   QMainWindow::changeEvent( event );
}
Записан

PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #4 : Июнь 17, 2016, 13:34 »

Можно еще через void QWidget::hideEvent(QHideEvent *event) отловить когда виджет сворачивается.
Записан
wenny
Гость
« Ответ #5 : Июнь 17, 2016, 13:54 »

Давайте проще: как вообще убить сворачивательный хлеб? Он вообще не нужен, по сути.
« Последнее редактирование: Июнь 17, 2016, 13:57 от wenny » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #6 : Июнь 17, 2016, 13:57 »

Написал же в changeEvent смотрите на isMinimized() -- значит окно было минимизировано.

Проверяете и если нужно убиваете окно, используя close
Записан

wenny
Гость
« Ответ #7 : Июнь 17, 2016, 13:59 »

Я понял. А саму кнопку дизакивировать можно?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #8 : Июнь 17, 2016, 14:02 »

Я понял. А саму кнопку дизакивировать можно?

Можно поиграться с setWindowFlags, или сделать через нативные функции
Записан

wenny
Гость
« Ответ #9 : Июнь 17, 2016, 14:20 »

Ваш пример завелся, спасибо
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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