Q&A-3:

Posted 深圳地铁Princess

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Q&A-3:相关的知识,希望对你有一定的参考价值。

Q:

启动软件后,东西全部挤叠在在一起了。
还有一个警告:QWidget::setLayout: Attempting to set QLayout “” on MainWindow “”, which already has a layout

A:

注意代码中是QWidget window;
你大概是用成了QMainWindow window

QMainWindow 有自己的布局管理器,所以一般是把你的布局放在一个 QWidget 上,然后将这个 QWidget 设置为 centralWidget

 QMainWindow 的确是继承自 QWidget,但是它同时添加了自己的 layout,正因为有 layout 的存在,所以你需要使用 setCentralWidget() 函数把一个 QWidget 设置为中心的组件,而不是把一个个的子组件用自己的 layout 添加进去(因为 QMainWindow 已经有了默认的 layout,你自己的 layout 才会不起作用)。

Tips:

一个程序中,在栈上分配太多对象可能会导致栈空间不足,从而程序崩溃。所以要适当的用堆啊。(这句话说的对吗?我有点怀疑,怎么都没有大佬路过呢?)

以上是关于Q&A-3:的主要内容,如果未能解决你的问题,请参考以下文章