前几天美工给设计出了一个用户登录界面,其中用户名输入框样式如下图:
左侧的“用户名”三个字为固定文字,中间可输入用户名,点击右侧的倒三角,可以显示下拉框,下拉框中显示的是历史登录成功的用户名,且在输入用户名时,若下拉框中有完整的用户名时进行补全提示。
本人采用的是最外层为QLineEdit控件,在QLineEdit控件中填充水平布局器,布局器中依次放入QLabel用于填写“用户名”固定数据,QComboBox,设置QComboBox样式为无边框,则样式看起来就跟上面展示的图片一样了,用户名补全的功能也是沿用了QComboBox的补全提示功能,主体代码如下:
.h文件
#ifndef MYLINEEDITCTRL_H
#define MYLINEEDITCTRL_H
#include <QLineEdit>
#include <QHBoxLayout>
#include <QWidget>
#include <QLabel>
#include <QComboBox>
#include <QCompleter>
#define NameMaxLen 20 //限制用户名的最大输入长度,可根据自己需要设置
class UserNameCtrl : public QLineEdit
{
Q_OBJECT
signals:
void sig_TextChanged(const QString &sName);//当用户名数据有变化时发出的信号,内容为当前的用户名数据
public:
explicit UserNameCtr