淺談 Qt 布局那些事
Qt 布局那些事是本文介紹的內(nèi)容,直接進(jìn)入主題。GridLayout是一個(gè)非常強(qiáng)大的布局管理器,它可以實(shí)現(xiàn)很多復(fù)雜的布局,名字中暗示它將所有控件放置在類似網(wǎng)格的布局中.^__^GridLayout有兩個(gè)構(gòu)造函數(shù).
先說下GridLayout
GridLayout的意思是按照網(wǎng)格布局,我記得這個(gè)在java中的GUI布局也有這個(gè)。比較容易理解,就好比一個(gè)一個(gè)的方格,我們先來看看Qt文檔中給出的定義:
- void QGridLayout::addWidget ( QWidget * widget, int row, int column, Qt::Alignment alignment = 0 )
 - void QGridLayout::addWidget ( QWidget * widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = 0 )
 
***個(gè)的布局的參數(shù)的意思依次為:QGridLayoutName,行號(hào),列號(hào)。
第二個(gè)的布局的參數(shù)的意思依次為:QGridLayoutName,行號(hào),列號(hào),行寬,列寬。
***,要將設(shè)置好的布局添加進(jìn)去,setLayout(yourLayout);
下面是寫的一個(gè)簡(jiǎn)單的小例子:
- QLabel* nameLabel=new QLabel(tr("Name"));
 - QLineEdit* nameLine=new QLineEdit;
 - QLabel* addressLabel=new QLabel(tr("Address"));
 - QTextEdit* addressText=new QTextEdit;
 - //布局采用gridLayout
 - QGridLayout* mainlayout=new QGridLayout;
 - mainlayout->addWidget(nameLabel,0,0,1,1);
 - mainlayout->addWidget(nameLine,0,1,1,3);
 - mainlayout->addWidget(addressLabel,1,0,3,1,Qt::AlignTop);
 - mainlayout->addWidget(addressText,1,1,3,3);
 - setLayout(mainlayout);
 
關(guān)于addStretch()
- QVBoxLayout* buttonLayout=new QVBoxLayout;
 - buttonLayout->addWidget(addButton);
 - buttonLayout->addWidget(submitButton);
 - buttonLayout->addWidget(cancelButton);
 - buttonLayout->addStretch();
 
上面這一段加不加***一句的效果如下圖:

小結(jié):淺談 Qt 布局那些事的內(nèi)容介紹完了希望本文對(duì)你有所幫助!更多內(nèi)容請(qǐng)參考編輯推薦。















 
 
 


 
 
 
 