Qt学习:Qt中QGridLayout按比例设定布局

 这里用到两个函数:

[cpp]   view plain  copy
  1. void QGridLayout::setColumnStretch ( int column, int stretch )  
  2. void QGridLayout::setRowStretch ( int row, int stretch )  


        column表示列码,stretch表示伸缩因子。

[cpp]   view plain  copy
  1. PreferenceDialog::PreferenceDialog(QWidget *parent)  
  2.     : QDialog(parent)  
  3. {  
  4.     createAppearancePage();  
  5.     createWebbrowserPage();  
  6.     createMainAndNewsPage();  
  7.     createAdvancedPage();  
  8.   
  9.    
  10.   
  11.     listWidget = new QListWidget;  
  12.     listWidget->addItem(tr("Appearance"));  
  13.     listWidget->addItem(tr("Web Browser"));  
  14.     listWidget->addItem(tr("Mail & News"));  
  15.     listWidget->addItem(tr("Advanced"));  
  16.   
  17.     stackedLayout = new QStackedLayout;  
  18.     stackedLayout->addWidget(appearancePage);  
  19.     stackedLayout->addWidget(webBrowserPage);  
  20.     stackedLayout->addWidget(mailAndNewsPage);  
  21.     stackedLayout->addWidget(advancedPage);  
  22.     connect(listWidget, SIGNAL(currentRowChanged(int)),  
  23.             stackedLayout, SLOT(setCurrentIndex(int)));  
  24.   
  25.     buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok  
  26.                                      | QDialogButtonBox::Cancel);  
  27.   
  28.     QGridLayout *mainLayout = new QGridLayout;  
  29.     mainLayout->setColumnStretch(0, 1);  
  30.     mainLayout->setColumnStretch(1, 3);  
  31.     mainLayout->addWidget(listWidget, 0, 0);  
  32.     mainLayout->addLayout(stackedLayout, 0, 1);  
  33.     mainLayout->addWidget(buttonBox, 1, 0, 1, 2);  
  34.     setLayout(mainLayout);  
  35.   
  36.     connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));  
  37.     connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));  
  38.   
  39.     setWindowTitle(tr("Preferences"));  
  40.     listWidget->setCurrentRow(0);  
  41. }  


其中 mainLayout->setColumnStretch(0, 1);
                mainLayout->setColumnStretch(1, 3);

        两句把第0列和第1列的比例设置成1:3 , 效果如图: 



FROM:  http://blog.csdn.net/bcs_01/article/details/8906639


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值