Qt C ++ MainWindow :: setMenuWidget无效

时间:2015-08-19 23:32:09

标签: c++ qt user-interface

我正在尝试在MainWindow :: setMenuWidget的帮助下添加自定义小部件 但这不能正常工作。
这是代码:
一块MainWindow构造函数:

MyMenuBar *menu = new MyMenuBar();

connect(menu,SIGNAL(Close_Window()),this,SLOT(close()));
connect(menu,SIGNAL(Minimized_Window()),this,SLOT(hide()));

menu->setWindowFlags(Qt::FramelessWindowHint);

this->setMenuWidget(menu);
menu->show();  

因此,它成功编译,启动但我的小部件没有出现。 我已经检查了

this->menuWidget();

并且它不是空的。

如果我改变了这样的代码

MyMenuBar *menu = new MyMenuBar();

connect(menu,SIGNAL(Close_Window()),this,SLOT(close()));
connect(menu,SIGNAL(Minimized_Window()),this,SLOT(hide()));

menu->setWindowFlags(Qt::FramelessWindowHint);

//this->setMenuWidget(menu);
menu->show();  

然后我的小部件显示正常,但它的行为就像一个单独的窗口。

有人可以帮我解决这个问题吗?感谢。

1 个答案:

答案 0 :(得分:0)

@Ankur谢谢老兄 它有效,但是当我设置父母时,我不需要使用

@Bean
public Node2BeanProcessor node2Bean() {
    return Components.getComponent(Node2BeanProcessor.class);
}

所以,最终的代码如下:

this->setMenuWidget(menu)