查看完整版本: [--
又请教大佬,如何动态切换布局?水平和垂直轮流换
--]
QTCN开发网
->
Qt基础编程
->
又请教大佬,如何动态切换布局?水平和垂直轮流换
[打印本页]
登录
->
注册
->
回复主题
->
发表主题
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()->setParent(0);
delete item;
}*/
if(isH){
//m_Hlayout->addWidget(ui->label);
//m_Hlayout->addWidget(ui->lineEdit);
//setLayout(m_Hlayout);
}else{
//m_Vlayout->addWidget(ui->label);
//m_Vlayout->addWidget(ui->lineEdit);
//setLayout(m_Vlayout);
}
}
如题,上面代码不好使所以注释了,如何动态切换呢?
lemonzll
2020-06-22 22:06
直接用QBoxLayout就可以了,用setDirection设置朝向
lanmanck
2020-06-23 09:12
lemonzll
:
直接用QBoxLayout就可以了,用setDirection设置朝向
(2020-06-22 22:06)
真的可以,太爱你了
liulin188
2020-06-23 13:44
查看完整版本: [--
又请教大佬,如何动态切换布局?水平和垂直轮流换
--] [--
top
--]
Powered by
phpwind
v8.7
Code ©2003-2011
phpwind
Gzip disabled