2016-01-06 77 views
1

我想在QFormLayout的一行中使用自定义的QWidget。下面的代码呈现形式布局,其中所述第一行具有一个QLineEdit的并且所述第二线具有定制窗口小部件:QFormLayout中的自定义QWidget,垂直对齐问题

的问题是,所述定制的窗口小部件不垂直对齐。如何垂直对齐?

project.pro:

QT  += core gui 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

TARGET = CustomLineEdit 
TEMPLATE = app 

SOURCES += main.cpp 

的main.cpp

#include <QApplication> 

#include <QHBoxLayout> 
#include <QFormLayout> 
#include <QLineEdit> 
#include <QPushButton> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    QWidget w; 

    QFormLayout *formLayout = new QFormLayout(&w); 

    QLineEdit *leUser = new QLineEdit; 

    QWidget *widget = new QWidget; 
    QHBoxLayout *hLayout = new QHBoxLayout(widget); 
    hLayout->addWidget(leUser); 
    hLayout->addWidget(new QPushButton); 

    formLayout->addRow("Text:", new QLineEdit); 
    formLayout->addRow("User:", widget); 

    w.show(); 
    return a.exec(); 
} 

回答

2

这是因为利润率。只需添加一行被跟随:

QHBoxLayout *hLayout = new QHBoxLayout(widget); 
hLayout->setMargin(0); //this line