Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: merke от Ноября 09, 2010, 13:08



Название: Как скрыть приложение с панели задач?
Отправлено: merke от Ноября 09, 2010, 13:08
Всем привет!

Как скрыть приложение с панели задач? Чтобы оно туда не сворачивалось.


Название: Re: Как скрыть приложение с панели задач?
Отправлено: Пантер от Ноября 09, 2010, 13:15
Не совсем понял, что тебе нужно. Нужно, чтобы было окно, но на панели его не было?


Название: Re: Как скрыть приложение с панели задач?
Отправлено: merke от Ноября 09, 2010, 13:26
да! именно!


Название: Re: Как скрыть приложение с панели задач?
Отправлено: Пантер от Ноября 09, 2010, 13:37
Попробуй поиграться с windowFlags.


Название: Re: Как скрыть приложение с панели задач?
Отправлено: merke от Ноября 09, 2010, 13:43
Выставляю. Qt::Tool, помогает.

Но сталкиваюсь со специфической и очень интересной проблемой: не могу теперь завершить приложение вызвав метов close();
Главное окно просто исчезает, но приложение висит по прежнему в процессах.

Почему?


Название: Re: Как скрыть приложение с панели задач?
Отправлено: kirill от Ноября 09, 2010, 13:49
Потому что окно Tool хайдится а не закрывается. Такое у него свойство.
юзай QCoreApplication::quit()


Название: Re: Как скрыть приложение с панели задач?
Отправлено: merke от Ноября 09, 2010, 13:52
спасибо, домой приду попробую! Я подозревал что собака где то здесь зарыта)))


Название: Re: Как скрыть приложение с панели задач?
Отправлено: andrew.k от Ноября 11, 2010, 10:45
Можно вместо QMainWindow использовать QDialog, тогда на панели задач ничего не будет и закрываться все будет как положено :)


Название: Re: Как скрыть приложение с панели задач?
Отправлено: SASA от Ноября 11, 2010, 12:12
Можно сделать основное окно приложения скрытым. Например, создаётся окошко, которое невидимо, но создаёт видимые окошки. Вот такой хук. ;)


Название: Re: Как скрыть приложение с панели задач?
Отправлено: andrew.k от Ноября 11, 2010, 16:12
Можно сделать основное окно приложения скрытым. Например, создаётся окошко, которое невидимо, но создаёт видимые окошки. Вот такой хук. ;)
а для чего создавать основное окно, если оно скрыто?
Создавать основное окно и делать его скрытым это то же самое, что писать подобные посты - глупо и бесполезно.

К тому же как только основное окно будет скрыто, приложение завершит свою работу. В куте3 основной виджет нужно было назначать, в куте4 как я понимаю основным становится первый показанный либо QMainWindow, если такой имеется.


Название: Re: Как скрыть приложение с панели задач?
Отправлено: Пантер от Ноября 11, 2010, 16:15
К тому же как только основное окно будет скрыто, приложение завершит свою работу.
Уверен? Почитай в ассистенте про setQuitOnLastWindowClosed.


Название: Re: Как скрыть приложение с панели задач?
Отправлено: andrew.k от Ноября 11, 2010, 16:25
К тому же как только основное окно будет скрыто, приложение завершит свою работу.
Уверен? Почитай в ассистенте про setQuitOnLastWindowClosed.
запамятовал, но по умолчанию оно true.

ЗЫ. Ну просто убил "почитай в ассистенте про...". Даже если бы я никогда не видел этот метод, я бы и так понял, что он делает.


Название: Re: Как скрыть приложение с панели задач?
Отправлено: SASA от Ноября 12, 2010, 12:18
К тому же как только основное окно будет скрыто, приложение завершит свою работу.
Вы понимаете разницу между "скрыть" и "закрыть"?

Про QDialog. Напишите пример иллюстрирующий ваши слова.

Про Tool. У этих окошек специфичный вид. например, заголовок.

P.S. По поводу моего способа. Я когда-то это делал, но сейчас решил накидать простенький примерчик. Чё-то не получается :'(.


Название: Re: Как скрыть приложение с панели задач?
Отправлено: andrew.k от Ноября 12, 2010, 19:58
К тому же как только основное окно будет скрыто, приложение завершит свою работу.
Вы понимаете разницу между "скрыть" и "закрыть"?
Разницу я понимаю, другое дело, у как-то я с этим возился в q3. Мне нужно было до отображения главной формы показать окно аутентификации. Соответственно. Главной форме делался hide() или она сразу скрытая была. В общем в каком-то сочетании. По скрытию главной формы завершалась работа приложения. С тех пор во мне это знание сидело.
Сейчас проверил в кути 3 и 4 по всяком. По хайду не завершается как QDialog так и QMainWindow.
Виноват за дизу.

Про QDialog. Напишите пример иллюстрирующий ваши слова.
Что на столько сложно написать пример?
Пример:
QDialog d;
d.show();
app.exec();
Инклуды, мэйн и остальное сам, я думаю, добавить в состоянии?

Так вот этот пример не отображает себя на панели задач, потому что QDialog.

P.S. По поводу моего способа. Я когда-то это делал, но сейчас решил накидать простенький примерчик. Чё-то не получается :'(.
Я еще раз задам свой вопрос, зачем делать скрытое окно, которое никогда не будет отображено?
Может лучше использовать скрытый QTreeWidget (выбор остается за читателями :), который будет отображать нужные окна?
Для танкистов: обычного класса наследованного от QObject достаточно.


Название: Re: Как скрыть приложение с панели задач?
Отправлено: andrewshkovskii от Ноября 12, 2010, 20:07
Цитировать
Что на столько сложно написать пример?
Пример:
QDialog d;
d.show();
app.exec();
Инклуды, мэйн и остальное сам, я думаю, добавить в состоянии?

Так вот этот пример не отображает себя на панели задач, потому что QDialog.
Да ладно?->> http://img819.imageshack.us/i/orlyc.png/ (http://img819.imageshack.us/i/orlyc.png/)