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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM