读书人

五个按钮布局排版的有关问题

发布时间: 2012-02-27 10:00:22 作者: rapoo

五个按钮布局排版的问题?
有时,显示5个 [ ] [ ] [ ] [ ] [ ]
有时,显示4个 [ ] [ ] [ ] [ ]
有时,显示3个 [ ] [ ] [ ]

用布局来做,代码如后面的。发现一个问题,m_pbuttonsLayout->addStretch()这根弹簧始终无法事先淡出布局。

于是,等多次执行之后,五个按钮的前面,居然多出了一根弹簧,看起来最前面留有空白。


这如何改善?

C/C++ code
/** 函数介绍:按钮布局调整* 输入参数: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__);}


[解决办法]
布局何不自己用算法实现,就不用依赖弹簧了。

读书人网 >QT开发

热点推荐