如何在cpp文件之间切换窗口?在Qt中



我在Qt框架C++中的小型应用程序有问题

我有一个第一个窗口,里面有两个按钮,你可以选择播放音乐或视频。音乐按钮将关闭";选择窗口";并且应该打开";音乐窗口";并且类似地用于视频按钮。

我不知道该怎么做。。。我知道我学习和使用过的一种方法,但我将解释这种方法如何不适合我当前的问题。

我已经在选择窗口的标题中创建了该窗口类的指针,当单击音乐按钮时,我新建了指针和musicWindow->show();hide();作为选择窗口,这很好,但有一个问题:

新打开的音乐窗口没有任何任务栏图标/缩略图,当它最小化时,就无法再次打开它(除了wtih alt选项卡(

并且没有找到像打开一个完整的新窗口一样打开它的方法,我只能通过使用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();
}

我在Qt论坛找到了答案:

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

@Radek(Qt论坛(:在创建它们时,尝试将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();
}

最新更新