记一次奇怪的QT布局重叠问题

记一次奇怪的qt 布局重叠错误

我在使用qt designer制作ui界面时,突然发现了一个奇怪的问题,我的两个widget居然重叠在了一起。整个布局的样式直接乱的一塌糊涂。在这里插入图片描述
通过检查,发现这个问题是由于我给cookie这个widget设置了最大高度和最小高度导致的。我将最大高度设置得比最小高度要来的小,于是发生了这个问题。
在这里插入图片描述
将其改正之后, 问题就解决了。
在这里插入图片描述
在这里插入图片描述
通过这个,我也有一个灵感,是否可以通过这种最大最小值写反的方式,进行前后图层的布局,实现html中的z-index,不过暂时还未实验。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Qt布局管理器来实现让两个Label控件垂直布局且居中放置。具体步骤如下: 1. 创建一个QWidget对象,并设置其背景色或背景图片。 2. 创建两个QLabel对象,并设置其文本和字体大小等属性。 3. 创建一个布局管理器,比如QVBoxLayout。 4. 将两个QLabel添加到布局管理器中。 5. 将布局管理器设置给QWidget对象。 6. 调用QWidget对象的setGeometry方法,将其大小设置为布局管理器的大小。 7. 调用QWidget对象的move方法,将其位置设置为居中。 示例代码如下: ```cpp QWidget *widget = new QWidget(this); widget->setStyleSheet("background-color: #f0f0f0;"); QLabel *label1 = new QLabel("Label 1", this); label1->setFont(QFont("Arial", 24)); QLabel *label2 = new QLabel("Label 2", this); label2->setFont(QFont("Arial", 24)); QVBoxLayout *layout = new QVBoxLayout(widget); layout->addWidget(label1); layout->addWidget(label2); widget->setLayout(layout); int x = (this->width() - widget->width()) / 2; int y = (this->height() - widget->height()) / 2; widget->setGeometry(x, y, widget->width(), widget->height()); ``` 这段代码将创建一个QWidget对象,并设置其背景色为#f0f0f0。然后创建两个QLabel对象,设置其文本为"Label 1"和"Label 2",字体大小为24。接着创建一个QVBoxLayout布局管理器,并将两个QLabel添加到其中。将布局管理器设置给QWidget对象,并将其大小设置为布局管理器的大小。最后计算居中位置,并将QWidget对象移动到该位置。这样就实现了让两个Label控件垂直布局且居中放置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值