标题:又请教大佬,如何动态切换布局?水平和垂直轮流换
作者:lanmanck
日期:2020-06-22 21:16
内容:
gui有一个lable和lineedit,希望搞个函数切换他们为水平或者垂直布局,
h文件:
private:
Ui::FormInput *ui;
QHBoxLayout *m_Hlayout;
QVBoxLayout *m_Vlayout;
cpp文件:
FormInput::FormInput(QWidget *parent) :
QWidget(parent),
ui(new Ui::FormInput)
{
ui->setupUi(this);
m_Hlayout = new QHBoxLayout;
m_Vlayout = new QVBoxLayout;
/*&QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(ui->label);
layout->addWidget(ui->lineEdit);
this->setLayout(layout);*/
// 先全部装起来
m_Hlayout->addWidget(ui->label);
m_Hlayout->addWidget(ui->lineEdit);
m_Vlayout->addWidget(ui->label);
m_Vlayout->addWidget(ui->lineEdit);
this->setLayout(m_Hlayout);
}
FormInput::~FormInput()
{
delete ui;
}
// 布局切换,不好使
void FormInput::setLayout2(bool isH)
{
// 删除layout
QLayoutItem *item;
// https://blog.csdn.net/weixin_34357962/article/details/93190444
/*while ((item = m_Vlayout->takeAt(0))){
m_Vlayout->removeWidget(item->widget());
//item->widget()->setParent(0);// 为空后从界面消失?
delete item;
}
while ((item = m_Hlayout->takeAt(0))){
m_Hlayout->removeWidget(item->widget());
//item->widget()-& ..
#1 [lemonzll 06-22 22:06]
直接用QBoxLayout就可以了,用setDirection设置朝向
#2 回 lemonzll 的帖子 [lanmanck 06-23 09:12]
lemonzll:直接用QBoxLayout就可以了,用setDirection设置朝向 (2020-06-22 22:06)
真的可以,太爱你了
#3 [liulin188 06-23 13:44]