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:的主要内容,如果未能解决你的问题,请参考以下文章
有以下程序: main( ) int a[10]=1,2,3,4,5,6,7,8,9,10,*p=&a[3],*q=p-2; printf("%d\n",*p+*q);
int a[3] = 1,2,3; int*p, *q; p = a; q = &a[2]; int i = q-p;为何i的结果为1而不是8,C语言的规定?