复制项目[ t_04 ],命名为 [ t_05 ]
1、先把各个按钮的头文件、声明和分配空间全部删除掉[ 只保存基本的框架就可以了,从此处开始,下面的全部不再说明基本框架从哪里来的,直接以“建立基本框架”为引子了! ]!再把输入框的头文件引入到mywidget.h中!
#include <dsearchedit.h>
#include <dpasswordedit.h>
#include <dlineedit.h>
#include <dipv4lineedit.h>
声明各个输入框:
private:
DSearchEdit * searchEdit;
DPasswordEdit * passwordEdit;
DLineEdit * lineEdit;
DIpv4LineEdit * ipv4lineedit;
QVBoxLayout * vboxlayout;
给各个输入框分配空间:
searchEdit = new DSearchEdit(this);
passwordEdit = new DPasswordEdit (this);
lineEdit = new DLineEdit (this);
ipv4lineedit = new DIpv4LineEdit(this);
最后不要忘了布局(见上一篇),不然:::全部都挤到一起了
效果图:
小贴士:
这儿使用了 vboxlayout->addStretch(); ,这可以叫弹簧,可以让控件不被拉伸,保持正确的布局大小,如果不用它效果是这样的:mywidget.h全部代码:
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
#include <dsearchedit.h>
#include <dpasswordedit.h>
#include <dlineedit.h>
#include <dipv4lineedit.h>
#include <QVBoxLayout>
DWIDGET_USE_NAMESPACE
class MyWidget : public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget *parent = 0);
private:
DSearchEdit * searchEdit;
DPasswordEdit * passwordEdit;
DLineEdit * lineEdit;
DIpv4LineEdit * ipv4lineedit;
QVBoxLayout * vboxlayout;
signals:
public slots:
};
#endif // MYWIDGET_H
mywidget.cpp全部代码:
#include "mywidget.h"
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
searchEdit = new DSearchEdit(this);
passwordEdit = new DPasswordEdit (this);
lineEdit = new DLineEdit (this);
ipv4lineedit = new DIpv4LineEdit(this);
vboxlayout = new QVBoxLayout(this);
vboxlayout->addWidget(searchEdit);
vboxlayout->addWidget(passwordEdit);
vboxlayout->addWidget(lineEdit);
vboxlayout->addWidget(ipv4lineedit);
vboxlayout->addStretch(); //弹簧,可以让控件不被拉伸,保持正确的布局大小
}