Russian Qt Forum

Qt => Общие вопросы => Тема начата: MuLLIKA от Сентябрь 24, 2010, 01:45



Название: Изменение виртуальной функции
Отправлено: MuLLIKA от Сентябрь 24, 2010, 01:45
Доброго всем!
Вопрос такой: какие виртуальные события относятся к кнопочкам "Свернуть" и "Развернуть" в верхнем правом углу? Возможно ли кнопку "Развернуть" сделать не активной?

Зарание спасибо!!!


Название: Re: Изменение виртуальной функции
Отправлено: Alex Custov от Сентябрь 24, 2010, 04:25
это нужно отлавливать событие QEvent::WindowStateChange стандартными методами - QObject::installEventFilter(), QWidget::event(), или другими


Название: Re: Изменение виртуальной функции
Отправлено: MoPDoBoPoT от Сентябрь 24, 2010, 11:48
Возможно ли кнопку "Развернуть" сделать не активной?
window->setWindowFlags(Qt::Window | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint);
В Qt-шных примерах есть программка (%QTDIR%/examples/widgets/windowflags/), с помощью которой можно поиграться с флагами окна.


Название: Re: Изменение виртуальной функции
Отправлено: MuLLIKA от Сентябрь 24, 2010, 13:42
Спасибо! попробую! ))


Название: Re: Изменение виртуальной функции
Отправлено: lit-uriy от Сентябрь 24, 2010, 20:57
забавное название у темы, второй раз на нём покупаюсь :)


Название: Re: Изменение виртуальной функции
Отправлено: MuLLIKA от Сентябрь 25, 2010, 01:42
=))

вроде разобрался, но возникла проблема - при сворачиванни "свернуть" окно сворачивается на панель задач, хотя по событию я вызываю слот по которому при нажатии на иконку в трее окно ложиться в трей! может нужно послать сигнал тому виджету по которому слот ложит окно в трей?


Название: Re: Изменение виртуальной функции
Отправлено: Alex Custov от Сентябрь 25, 2010, 03:45
я вызываю слот по которому при нажатии на иконку в трее окно ложиться в трей

не надо так делать


Название: Re: Изменение виртуальной функции
Отправлено: MuLLIKA от Сентябрь 25, 2010, 09:58
А что тогда делать?)


Название: Re: Изменение виртуальной функции
Отправлено: MuLLIKA от Сентябрь 25, 2010, 11:46
Может не правильно работает фильтр событий.....в плане приема события и его переназначения

bool exmpl::eventFilter(QObject *obj, QEvent *event)
{
    if(event->type() == QEvent::WindowStateChange)
    {
        s4etState++; //счет нажатия свернуть - развернуть
        if(s4etState % 2 != 0)
        {
            this->SendSignalToMinTray(true);
        }
        else emit ShowWindow(true);
        return true;
    }
    else return QMainWindow::eventFilter(obj, event);
}


Название: Re: Изменение виртуальной функции
Отправлено: MuLLIKA от Сентябрь 27, 2010, 15:27
Решено!


Название: Re: Изменение виртуальной функции
Отправлено: Alex Custov от Сентябрь 27, 2010, 17:17
Решено!

сворачивать в трей при обычном сворачивании - это нелогично. Обычно в трей сворачивают при закрытии окна, и делают настройку для этого.


Название: Re: Изменение виртуальной функции
Отправлено: MuLLIKA от Сентябрь 29, 2010, 00:36
да, я так и сделал) а кнопку сворачивания убрал с панели


Название: Re: Изменение виртуальной функции
Отправлено: Alex Custov от Сентябрь 29, 2010, 01:34
кнопку сворачивания убрал с панели

ещё лучше ;D ;D


Название: Re: Изменение виртуальной функции
Отправлено: CL0NE от Октябрь 01, 2010, 16:24
Цитировать
сворачивать в трей при обычном сворачивании - это нелогично.
Скажите это разработчикам Filezilla (Server Interface), Foobar2000 :) Это так, навскидку.
Цитировать
забавное название у темы, второй раз на нём покупаюсь
me too...


Название: Re: Изменение виртуальной функции
Отправлено: Alex Custov от Октябрь 02, 2010, 16:26
Цитировать
сворачивать в трей при обычном сворачивании - это нелогично.
Скажите это разработчикам Filezilla (Server Interface), Foobar2000 :) Это так, навскидку.

я бы непременно сказал, гениев от дизайна у нас хватает.