云中孤鹤

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在qt5中主界面有菜单栏,选择菜单栏的选项之后,想让该选项对应的窗口界面在当前主界面窗口中。主界面窗口中动态生成 新窗口,并在new的时候指定本类为父类。代码如下:

Eight* eight;//新窗口类名为Eight,此句实际在主窗口的头文件中
eight=new Eight(this);//在主窗口中动态生成指定窗口,并指定本窗口为起父窗口

上面代码运行之后,会发现eight窗口顺利出现在主窗口内。但是!但是此时发现,主窗口的菜单栏此时只能看到,但是不可用!

解决方案:在主窗口中添加一个 新的窗体控件,并设定新窗体控件的大小,即设定你想让出现在主窗体的子窗体的显示区域。然后指定创建子窗体的时候,指定该窗体控件为其父窗体。

代码如下:

Eight *eight;
eight=new Eight(ui->widget);//设置主窗体中的 窗体控件为新窗体父窗体

编译运行,发现新窗体出现在主窗体区域内,但是主窗体的菜单栏依然可用。问题解决。

另一种解决方案:模式。新窗口出现在主窗体内,但是通过 模式 设置,可以使父窗口的一切控件可用。这个也是不足的地方。如果主窗体本身有内容,就会乱。

posted on 2018-03-25 13:17  云中孤鹤  阅读(3619)  评论(0编辑  收藏  举报