在项目中遇到要实现一个动态信息展示UI,so,需要动态删除控件
结构体保存所有新建控件并标识序列号【m_nSequence】
struct CStInfo
{
int m_nSequence;
QGridLayout * m_pGridLayout;
QLabel * m_pTaskNameLabel;//任务名称标签
QLabel * m_pTaskName;//任务名称
QLabel * m_pBeginTimeLabel;
QDateTimeEdit * m_pBeginTime;
QLabel * m_pEndTimeLabel;
QDateTimeEdit * m_pEndTime;
};
删除控件代码为:
void DlgInfo::clearLayoutQueue()
{
//首先把要删除的控件的父控件指向设为空
m_pLeftButton11->setParent(0);//左快进按钮,相当于<<
m_pLeftButtion1->setParent(0);//左快进按钮,相当于<
m_pRightButton1->setParent(0);//右快进按钮,相当于>
m_pRightButton11->setParent(0);//右快进按钮,相当于>>
//从主布局中把控件移除
m_pGLayoutMain->removeWidget(m_pLeftButton11);
m_pGLayoutMain->removeWidget(m_pLeftButton1);
m_pGLayoutMain-