鱼C论坛

 找回密码
 立即注册
查看: 1676|回复: 0

[技术交流] Qt-008控件之QLineEdit

[复制链接]
发表于 2018-11-27 22:20:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
QLineEdit是Qt提供的单行文本编辑框。
1. 设置/获取内容
获取编辑框内容使用text()   ==>  QString  text() const
设置编辑框内容    ==>  void  setText(const QString &)
2. 设置显示模式
使用QLineEdit类的setEchoMode () 函数设置文本的显示模式  ==>  void  setEchoMode(EchoMode mode)
EchoMode是一个枚举类型,一共定义了四种显示模式:
QLineEdit::Normal  模式显示方式,按照输入的内容显示。
QLineEdit::NoEcho   不显示任何内容,此模式下无法看到用户的输入。
QLineEdit::Password  密码模式,输入的字符会根据平台转换为特殊字符。
QLineEdit::PasswordEchoOnEdit  编辑时显示字符否则显示字符作为密码。
用QLineEdit显示文本的时候,希望在左侧留出一段空白的区域,那么,就可以使用QLineEdit给我们提供的setTextMargins函数:
        void setTextMargins(int left, int top, int right, int bottom)
此函数可以指定显示的文本与输入框上下左右边界的间隔的像素数。
3. 设置输入提示
如果我们想实现一个与百度的搜索框类似的功能:输入一个或几个字符,下边会列出几个跟输入的字符相匹配的字符串,QLineEdit要实现这样的功能可以使用该类的成员函数setComleter()函数来实现:
        void  setCompleter(QCompleter * c);
创建QCompleter对象,并初始化:
QStringList tipList;
tipList<< “Hello” << “how are you” << “Haha” << “oh, hello”;
completer->setCaseSensitivity(Qt::CaseInsensitive);   // 不区分大小写
QCompleter *completer = new QCompleter(tipList, this);
QCompleter类的setCaseSensitivity()函数可以设置是否区分大小写,它的参数是一个枚举类型:
Qt::CaseInsensitive  =>  不区分大小写
Qt::CaseSensitive   =>  区分大小写
如果不设置该属性,默认匹配字符串时是区分大小写的。
另外我们还可以设置字符串其中某一部分匹配,此功能可通过QCompleter类的setFilterMode函数来实现,函数声明如下:
        void  setFilterMode(Qt::MatchFlags filterMode);
其参数为Qt定义的宏,有多重类型,要实现我们上边提到的功能,参数可以使用 Qt::MatchContains
属性设置完成之后,将QCompleter对象设置到QLineEdit中:
        QLineEdit *edit = new QLineEdit(this);
        edit->setCompleter(completer);
6.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 10:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表