Qt 代码: Qt布局与分割器QSplitter

Qt的布局方式主要有四种:

QGridLayout         栅格布局
QFormLayout       表格布局
QHBoxLayout       水平布局
QVBoxLayout       垂直布局

然而,只通过以上四种布局的组合似乎不太好用, 因此需要搭配分割器QSplitter, 在QSplitter中实现局部布局,最后再放进主布局中可以实现非常好的效果.

/*
 ******************************************************************
 * 函数名称  initLayout
 * 函数功能  初始化窗口布局
 * 函数参数  
 * 返回值  
 ******************************************************************
 */
void QFriendManager::initLayout()
{
     //创建主布局VBoxLayout
     QVBoxLayout *mainLayout = new QVBoxLayout();
 
 
 
     //创建主Splitter
     QSplitter *splitterMain = new QSplitter(Qt::Vertical, this);
 
 
 
     //添加标题标签和表格部件到主Splitter
     tableWidget = new QTableWidget(splitterMain);
     tableWidget->setMinimumHeight(120);
 
 
 
     //创建底部工具栏Splitter,父亲为主Splitter
     QSplitter *splitterBottom = new QSplitter(Qt::Horizontal, splitterMain);
     check_selectAll = new QCheckBox(QObject::tr("全选"), splitterBottom);
     pb_delete = new QPushButton(QObject::tr("删除"), splitterBottom);
     pb_find = new QPushButton(QObject::tr("查找"), splitterBottom);
     le_find = new QLineEdit(splitterBottom);
     check_selectAll->setFixedSize(48, 32);
     pb_delete->setFixedSize(48, 32);
     pb_find ->setFixedSize(48, 32);
 
 
 
     //禁用Splitter拉伸效果
     splitterMain->handle(1)->setDisabled(true);
      splitterBottom->handle(1)->setDisabled(true);
     splitterBottom->handle(2)->setDisabled(true);
     splitterBottom->handle(3)->setDisabled(true);
 
 
     //设置窗口边沿宽度
     mainLayout->setContentsMargins(2,5,2,5);
 
 
     //添加主Splitter到主布局VBoxLayout
     mainLayout->addWidget(splitterMain, 0);
     this->setLayout(mainLayout);
}



<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(6) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值