大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
转载:http://www.cnblogs.com/csuftzzk/p/qss_lineedit_completer.html?utm_source=tuicool&utm_medium=referral
显示密码
显示密码时,利用lineedit-password-character属性更改密文显示字符内容。
QLineEdit[echoMode="2"] {
lineedit-password-character: 35; /*35,这是一个ASCII码值,在ASCII码中对应字符为‘#’*/
}
自动补全
通过不断修改QCompleter的模型QStandardItemModel实现自动补全。
m_model = new QStandardItemModel(0, 1, this);
m_completer = new QCompleter(m_model, this);
ui.lineEdit->setCompleter(m_completer);
//将信号activated()连接到槽onEmailChoosed()。当用户用鼠标选择了某一项之后就把选中的项更新到文本框中,补全完成。
connect(m_completer, SIGNAL(activated(const QString&)), this, SLOT(onEmailChoosed(const QString&)));
//信号textChanged()连接到onTextChanged()用于更新Model中的数据。
connect(ui.lineEdit, SIGNAL(textChanged(const QString&)), this, SLOT(onTextChanged(const QString&)));
void ThemeRoller::onEmailChoosed(const QString& email)
{
ui.lineEdit->clear(); // 清除已存在的文本更新内容
ui.lineEdit->setText(email);
}
void ThemeRoller::onTextChanged(const QString& str)
{
if (str.contains("@")) // 如果已经输入了@符号,我们就停止补全了。因为到了这一步,我们再补全意义也不大了。
{
return;
}
QStringList strlist;
strlist << "@163.com" << "@qq.com" << "@gmail.com" << "@hotmail.com" << "@126.com";
m_model->removeRows(0, m_model->rowCount()); // 先清楚已经存在的数据,不然的话每次文本变更都会插入数据,最后出现重复数据
for (int i = 0; i < strlist.size(); ++i)
{
m_model->insertRow(0);
m_model->setData(m_model->index(0, 0), str + strlist.at(i));
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/226734.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...