как переключать windows между cpp файлами? в Qt - PullRequest
0 голосов
/ 12 июля 2020

У меня проблема с моим небольшим приложением в Qt framework C ++

У меня есть первое окно, в котором есть две кнопки, где вы можете выбрать воспроизведение музыки c или видео. Кнопка musi c закроет «окно выбора» и должна открыть «окно musi c» и аналогично для кнопки видео.

Я не знаю, как это сделать ... Я знаю способ, который я использовал и использовал, но этот метод я собираюсь объяснить, как он не подходит для моей текущей проблемы.

Я создал указатель этого класса окна в заголовке окна выбора и при нажатии кнопки musi c я создаю указатель и musicWindow->show(); и hide(); окно выбора, это хорошо, но есть проблема:

новое открытое окно musi c не У меня нет значка / эскиза панели задач, и когда он свернут, нет возможности открыть его снова (кроме alt-tab)

и не найти способ открыть его как полностью новое окно, я просто могу откройте их все сразу, используя choosWindow.show(); / musicWindow.show(); / ....

Я знаю, что должен быть способ, но я даже не знаю, какие темы искать, чтобы продвинуться дальше ...

FirstWindow.cpp:
void FirstWindow::on_musicChoose_clicked()
{
    //send a signal from here
}

void FirstWindow::on_videoChoose_clicked()
{
    //send a signal from here
}

main.cpp:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    FirstWindow w;

    if(//what condition?)
    {
        MusicWindow mw;
        mw.show();
    }
    if(//what condition?)
    {
        VideoWindow vw;
        vw.show();
    }
    

    return a.exec();
}

1 Ответ

0 голосов
/ 13 июля 2020

Я нашел свой ответ на Qt Forum:

https://forum.qt.io/topic/68602/child-window-in-taskbar/3

@ Radek (Qt Forum): попробуйте передать 0 (ноль) в качестве родителя при создании им.

FirstWindow.cpp:
void FirstWindow::on_musicChoose_clicked()
{
    this->hide();
    mw = new MusicWindow(0); // passing nullptr as parent
    mw.show();
}

void FirstWindow::on_videoChoose_clicked()
{
    this->hide();
    vw = new VideoWindow(0); // passing nullptr as parent
    vw.show();
}

main.cpp:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    FirstDialog w;
    w.exec();
    

    return a.exec();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...