LINUX.ORG.RU

QT: создать несколько окон для одной программы.


0

0

Вообщем я делаю так:

int main(int argc, char **argv) { QApplication app ( argc, argv ); kmms * mw = new kmms; mw->show ( ); kmms * reciever = new kmms; reciever->show ( ); reciever->move(100,100); app.setMainWidget ( mw ); return app.exec ( ); }

в результате получаю два окна, НО!!! в панели задач так же два окна, но мне необходимо что бы так было только одно, т.е. как в xmms, я думаю все его видели, в панели окно одно а состоит из трёх.

kmms - QWidget.

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

★★★★★

Пардон:

int main(int argc, char **argv)
{
QApplication app ( argc, argv );
kmms * mw = new kmms;
mw->show ( ); kmms * reciever = new kmms;
reciever->show ( );
reciever->move(100,100);
app.setMainWidget ( mw );
return app.exec ( );
}

и сюда же, а можно ли сделать отдельный виджет не привязанный к главному окну (виджету) но созданного внутри главного виджета (в данном случае mw)?

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

>>и сюда же, а можно ли сделать отдельный виджет не привязанный к главному окну (виджету) но созданного внутри главного виджета (в данном случае mw)?

QWorkspace ?

anonymous
()
Ответ на: комментарий от olegk

Что бы скрыть окно не надо ничего хитрого, просто добавить Qt::WX11BypassWM в параметры виджета, в моём случае окно, всё вместе выглядит так:

kmms * control = new kmms(Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WX11BypassWM);

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

А вот qworkspace это не то, это для MDI, но все окна будут внутри определённой зоны, но не зависимы :(, так что это не то :(

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

Мдаа, пока не удаётся добиться взаимодействия средствами QT возможно придётся юзать мессдажи для общения между окнами, единственно что не удаётся сделать, так это то что бы окно не обозначенное в панеле задач уходило на задний план когда его должно перекрыть другое окно.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

думаю "Qt::WX11BypassWM" правилный путь,
но придется проделать некоторую работу за WM:
добавить декорации, кнопочки minimize, maximaze etc.
отрабатывать resize, move events. В общем, все, что делается
в qworkspace/MDI (code can be cut&pasted from where)

Valeriy_Onuchin ★★
()
Ответ на: комментарий от Valeriy_Onuchin

Да это всё понятно, но почему то окна не могут перекрыть виджет с таким флагом, т.е. оно как будто привязано к alwaysontop и не может без него.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

Ты что, пишешь очередной мегасупераудиоплейер для KDE? :) По-моему, их и так уже развелось, как собак нерезаных.

V_L_A_D ★★
()
Ответ на: комментарий от anonymous

Пишу я его скорее для себя и то потому что ни одного нормального для меня ещё не нашёл, а нужно от него многое вот и решил паралелино изучив нувую для меня область кодинга звука и пр с ним связанного написать плеер под себя, а если он кому то ещё понравиться так пусть и то польза :)

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.