QT-界面居中管理

        问题:为什么不能对checkbox直接居中,LineEdit可以

        复选框是一个固定大小的控件,不适合填满整个单元格,而相比之下QLineEdit是一个可变大小的控件
关于居中:
  1. lineEdit:lineEdit -> setAlignment(QT::AlignCenter); 这是让文本框中的内容居中
  2. checkbox:没有直接居中的方式,需要设置布局或者setStyleSheet暴力调位置(后者太蠢)
布局管理器 -> 内容容器 -> 复选框
QCheckBox* checkbox = new QCheckBox();//创建复选框
QWidget* widget = new QWidget(); // 创建单元格内容容器
QHBoxLayout* layout = new QHBoxLayout(widget);//创建水平布局管理器

layout -> addWidget(checkbox); // 添加复选框到布局中
layout -> setAlignment(Qt::AlignCenter); // 设置布局内控件居中对齐

ui.tableWidget->setCellWidget(row, col, pWidget);

🔺 

Layout->setAlignment(control, Qt::AlignCenter); //只针对控件control居中
Layout->setAlignment(Qt::AlignCenter);//所有布局内的控件全部居中

 🔺策略 QSizePolicy类 是用来控制控件如何在父布局中缩放和定位(对内容容器)

//在水平和垂直方向上都采用Preferred策略
pWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);//布局策略(水平+垂直)
QSizePolicy::Preferred:控件有一个首选大小,但是如果布局需要,它可以被扩大或缩小。这意味着控件会尽量保持其首选大小,但不是绝对不变,会根据布局需求适当调整。
QSizePolicy::MinimumExpanding:控件至少会占据其最小大小,但它是愿意并且能够扩展以填充额外的空间。
这行代码的意思是设置pWidget在水平和垂直方向上都采用Preferred策略。这意味着pWidget会尽量保持其内部内容(在这个案例中是QCheckBox)的自然大小,但也会根据容器(QTableWidget的单元格)的变化做出适当的调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值