博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Attempting to add QLayout "" to MainWindow "", which already has a layout
阅读量:6258 次
发布时间:2019-06-22

本文共 897 字,大约阅读时间需要 2 分钟。

给QWidget或者QDialog设置布局的时候方式很简单。创建好一个布局:mainLayout,然后不停地把各个控件往mainLayout里面放,最后调用setLayout(mainLayout)就行了。

QMainWindow中使用这个方法的时候却不管用,因为QMainWindow是默认有layout的,所以再次设置layout会失效。

会出现这种提示:

QWidget::setLayout: Attempting to set QLayout "" on MainWindow "", which already has a layout

这句话的意思是说,你已经给MainWindow设置过一个布局了,再设置一个会出错。
该如何给QMainWindow正确地设置布局呢
要想QMainWidget创建布局,合理的步骤应该是这样的:
第一步创建一个QWidget实例,并将这个实例设置为centralWidget:

然后创建一个主布局mainLayout,并把所需要的所有控件都往里面放(工具栏、菜单栏、状态栏除外):

...

最一步就是将widget的布局设置为mainLayout

widget = new QWidget();      this->setCentralWidget(widget);      cbox = new QCheckBox(this);      cbox->setText("choose");      cbox->setChecked(false);      button = new QPushButton(this);      QVBoxLayout *layout = new QVBoxLayout(this);            layout->addWidget(cbox);      layout->addWidget(button);            widget->setLayout(layout);

 

转载于:https://www.cnblogs.com/oakentree/p/4433086.html

你可能感兴趣的文章
Android开发日记(七)
查看>>
Python多线程
查看>>
c++ 动态分配二维数组 new 二维数组
查看>>
在source insight中集成astyle
查看>>
一个canonical标签解决site不在首页的问题
查看>>
[Hibernate开发之路](2)Hibernate问题
查看>>
HDU - 4118 Holiday's Accommodation
查看>>
函数式编程——C#理解
查看>>
java数组或集合返回空的问题
查看>>
【转】gc日志分析工具
查看>>
java多线程系列2-线程控制
查看>>
godep 包管理工具
查看>>
爬虫工程师要求
查看>>
Linux 远程查看tomcat控制台
查看>>
【转】七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)...
查看>>
[转] “error LNK2019: 无法解析的外部符号”之分析
查看>>
演示-JQuery关系选择器
查看>>
微信支付接口之jsApiPay教程
查看>>
C#十种语法糖
查看>>
PHP 如何显示大数字,防止显示为 科学计数法 形式
查看>>