当前位置: 代码迷 >> QT开发 >> 刚学QT 布局后后面的widget覆盖了前面的
  详细解决方案

刚学QT 布局后后面的widget覆盖了前面的

热度:694   发布时间:2016-04-25 02:57:25.0
刚学QT 求救布局后后面的widget覆盖了前面的
刚找到论坛 还不懂怎么贴代码 只好上图片了 见谅
看到论坛有人说 ui->ui->setupUi(this); 里有了layout 但只能有一个layou 所以我就把他注释掉看 但是还是会被覆盖掉......

界面如下

------解决思路----------------------
1.  手册中是这么说的

void QWidget::setLayout(QLayout * layout)

If there already is a layout manager installed on this widget, QWidget won't let you install another.

2. QMainWindow 默认就有一个Layout。(不然菜单栏,工具栏,状态栏等等,是如何放上去的?)
------解决思路----------------------
这不是覆盖了,这个布局你去掉还是这么显示的,我一直习惯继承QDialog,用这个你的代码就没问题
看你建的还有UI文件那你怎么不直接拖控件呢
------解决思路----------------------
引用:
Quote: 引用:

你应该把它原来的ui都去掉,包含头文件,定义和初始化变量那些都删了。

这样的话 QT设计师就不能用了吧? 好麻烦

别用设计师,自己写布局又不费事。而且设计师出来的东西,全屏了,控件都不跟着变。你要是用设计师,直接把控件加到设计师的layout里应该也行吧,他生成的那个类里的变量都是public的
------解决思路----------------------
引用:
主要是我想把opencv读取的视频放到QT设置的窗口上 在网上找了个例子 它把一个label放到了layout里然后用setpixmap显示视频 我做的时候那个label总出不来 所以就想自己试试layout,这才发的帖子 至于为什么不用设计师因为我找不到方法在槽函数里调用ui部件

比如你在设计师里放了一个QLabel控件,名为Mylabel吧,想调用这个控件,就这样

ui->Mylabel;
  相关解决方案