我在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();
}