QFormLayout中的自定义QWidget,垂直对齐问题



我想在QFormLayout的一行中使用自定义的QWidget。下面的代码展示了一个表单布局,其中第一行有一个QLineEdit,第二行有一种定制的小部件:

问题是定制的小部件没有垂直对齐。如何垂直对齐?

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();
}

这是因为页边空白。只需添加以下行:

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

相关内容

  • 没有找到相关文章

最新更新