五个按钮布局排版的问题?
有时,显示5个 [ ] [ ] [ ] [ ] [ ]
有时,显示4个 [ ] [ ] [ ] [ ]
有时,显示3个 [ ] [ ] [ ]
用布局来做,代码如后面的。发现一个问题,m_pbuttonsLayout->addStretch()这根弹簧始终无法事先淡出布局。
于是,等多次执行之后,五个按钮的前面,居然多出了一根弹簧,看起来最前面留有空白。
这如何改善?
/** 函数介绍:按钮布局调整* 输入参数:enElementId,按钮类型* 输出参数:无* 返回值 :无*/void SMSUIMainDlg::adjustButtonsLayout(SMS_BUTTONBOX_TYPE enIndex){ qDebug ("%s: %s: Entered", __FILE__, __FUNCTION__); if ((NULL!=m_pbuttonDelete) && (NULL!=m_pbuttonAddCon) && (NULL!=m_pbuttonForward) && (NULL!=m_pbuttonReply) && (NULL!=m_pbuttonNew) && (NULL!=m_pbuttonsLayout) ) { //淡出布局 m_pbuttonDelete->setParent(NULL); m_pbuttonAddCon->setParent(NULL); m_pbuttonForward->setParent(NULL); m_pbuttonReply->setParent(NULL); m_pbuttonNew->setParent(NULL); m_pbuttonsLayout->setSpacing(7); m_pbuttonsLayout->setContentsMargins(0, 0, 0, 0); switch (enIndex) { case SMS_BUTTON_INBOX: //加入布局 m_pbuttonsLayout->addWidget(m_pbuttonDelete); m_pbuttonsLayout->addWidget(m_pbuttonAddCon); m_pbuttonsLayout->addWidget(m_pbuttonForward); m_pbuttonsLayout->addWidget(m_pbuttonReply); m_pbuttonsLayout->addWidget(m_pbuttonNew); break; case SMS_BUTTON_SENT: //加入布局 m_pbuttonsLayout->addWidget(m_pbuttonDelete); m_pbuttonsLayout->addStretch(); m_pbuttonsLayout->addWidget(m_pbuttonAddCon); m_pbuttonsLayout->addWidget(m_pbuttonForward); m_pbuttonsLayout->addWidget(m_pbuttonNew); break; case SMS_BUTTON_DRAFT: //加入布局 m_pbuttonsLayout->addWidget(m_pbuttonDelete); m_pbuttonsLayout->addStretch(); m_pbuttonsLayout->addWidget(m_pbuttonAddCon); m_pbuttonsLayout->addWidget(m_pbuttonNew); break; default : break; } } qDebug ("%s: %s: Exit", __FILE__, __FUNCTION__);}