什么是网站挂马,多语言网站一个域名,网站建设基本要求,seo运营最近在工作时#xff0c;被要求#xff0c;需要将布局中的某些部件隐藏后#xff0c;但不能影响原来的布局。
现在记录解决方案#xff01; 一、水平布局#xff08;垂直布局一样#xff09;
ui中的布局
效果#xff1a; 按钮可以任意隐藏#xff0c;都不影响其中布…最近在工作时被要求需要将布局中的某些部件隐藏后但不能影响原来的布局。
现在记录解决方案 一、水平布局垂直布局一样
ui中的布局
效果 按钮可以任意隐藏都不影响其中布局。 隐藏代码
ui-pushButton_1-hide(); // 需要使用hide()
QSizePolicy retain ui-pushButton_1-sizePolicy(); // 获取控件的大小调整策略
retain.setRetainSizeWhenHidden(true); // 设置控件被隐藏时任然保持在布局中的位置大小
ui-pushButton_1-setSizePolicy(retain); // 重新设置大小策略
需要使用到hide()函数。
显示代码
ui-pushButton_1-setHidden(false);
// 也可以 ui-pushButton_1-show();
这种是在ui布局中的 二、网格布局 GridLayout 其他布局类似
代码中自定义控件的布局
实现效果 将第一个第三个第七个按钮给隐藏掉了但是并不影原来的布局。 布局代码
QGridLayout *gLayout new QGridLayout(this);
QListQPushButton * pList;
for (int i 0; i 3; i) { for (int j 0; j 3; j) { QPushButton *btn new QPushButton(this); btn-setText(我是按钮); pList.append(btn); // 添加到链表用于隐藏部件按钮 btn-hide(); // 1.需要先隐藏 gLayout-addWidget(btn, i, j); // 2.再添加到布局 }
}
// 上面被隐藏了这里显示出来
for (QPushButton *btn : pList) { btn-setHidden(false);
} this-setLayout(gLayout);
注意需要先隐藏控件后再添加到布局管理器中
为什么需要这样呢某些场景下不这样操作无法达到最终效果 隐藏代码
pList[0]-hide(); // 需要使用hide()
QSizePolicy retain pList[0]-sizePolicy();
retain.setRetainSizeWhenHidden(true);
pList[0]-setSizePolicy(retain);
// ... 其他按钮隐藏类似修改索引即可
需要恢复显示可以使用 setHidden 函数或者 show 函数。 完