zoukankan      html  css  js  c++  java
  • 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);
    
    }
    

    http://blog.csdn.net/jan5_reyn/article/details/38955709

  • 相关阅读:
    python笔记01
    【工具大道】ssh登录Linux服务器,并显示图形化界面
    【夯实PHP基础】PHP常用类和函数总结
    【开发软件】 在Mac下配置php开发环境:Apache+php+MySql
    【工具大道】UML的点点滴滴
    【ctags/cscope/project安装使用】给神编辑器vim添加新的翅膀
    PHP程序员的技术成长规划
    【夯实PHP基础】PHPUnit -- PHP测试框架
    【夯实PHP基础】PHP多进程-- pcntl_fork实现
    【工匠大道】升级Mac下的svn,解决命令行不能使用svn的问题
  • 原文地址:https://www.cnblogs.com/findumars/p/5574475.html
Copyright © 2011-2022 走看看