专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > QT开发

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

发布时间:2010-05-30 21:31:54 文章来源:www.iduyao.cn 采编人员:星星草
五个按钮布局排版的问题?
有时,显示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__);
}


------解决方案--------------------
布局何不自己用算法实现,就不用依赖弹簧了。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: