2012-03-31 66 views
2

以下簡化的代碼片斷:QBoxLayout擰QFormLayout?

#include <QtGui> 

int main(int argc, char **argv) 
{ 
QApplication app(argc, argv); 
QWidget *window = new QWidget(); 
QFormLayout *form = new QFormLayout(); 

// first row 
form->addRow("First row:", new QLineEdit()); 

// second row 
QWidget *hbox_widget = new QWidget(); 
QBoxLayout *hbox = new QHBoxLayout(); 
hbox->addWidget(new QLineEdit()); 
hbox_widget->setLayout(hbox); 
form->addRow("Second row:", hbox_widget); 

window->setLayout(form); 
window->show(); 
return app.exec(); 
} 

在這裏,我創建QFormLayout兩行:第一種是標籤+輸入窗口小部件的一個典型的例子,第二個幾乎是相同的,不同之處在於,輸入小部件在QHBoxLayout(包含小部件)中「裝箱」。

result of above code

出於某種原因,這似乎把螺絲擰輸入窗口小部件的「垂直定心」(第2行中)。我如何添加一個包含hboxlayout中的其他人的小部件到一個formlayout,並且仍然讓它們都垂直居中?

回答

3

設置QHBoxLayout,負責的內容邊距設置爲0:

QBoxLayout *hbox = new QHBoxLayout(); 
hbox->setContentsMargins(0, 0, 0, 0);