qt(4)QLineEdit之文本不被选中

更新时间:2023-07-05 16:10:40 阅读: 评论:0

qt(4)QLineEdit之⽂本不被选中转⾃上⾯,分析得很到位。
⽂本被选中状态有以下⼏种情况:
1、全选(Ctrl+A)
2、⿏标双击(频繁点击)
3、Shift + Home 组合键
奥字组词4、Shift + End 组合键
5、Shift + ⿏标点击
6、Tab键切换
7、左、右键
。。。
8,⿏标右键
void PwdLineEdit::contextMenuEvent(QContextMenuEvent *event)
{
if(event->reason()== QContextMenuEvent::Mou)
{
focusPreviousChild();炒双冬
return;
}
}
涉及的知识点:
1,qt⾃定义部件,然后在qtdesigner中把对应的部件提升下,
2,重写⼀些部件的事件函数
void PwdLineEdit::mouDoubleClickEvent(QMouEvent *) {
return;
}
void PwdLineEdit::mouMoveEvent(QMouEvent *)
{
return;
武汉重启}
void PwdLineEdit::keyPressEvent(QKeyEvent *event)
{
if(event->matches(QKeySequence::Copy))
{
return;
}
el if(event->matches(QKeySequence::SelectAll))
{
return;
白羊和金牛}
形容好朋友的词语el if(event->matches(QKeySequence::Paste))
{
return;
}王一行
el if(event->key() == Qt::Key_Home)
{
this->tCursorPosition(0);
}
el if(event->key() == Qt::Key_End)
{
this->tCursorPosition(this->text().length());
}
书信格式作文el{
QLineEdit::keyPressEvent(event);
}
}
void PwdLineEdit::mouPressEvent(QMouEvent *event) {
//⿏标位置
int curMouPos = cursorPositionAt(event->pos());
//光标位置
int curCursorPos = this->cursorPosition();
if(curMouPos < curCursorPos)
{
this->tCursorPosition(curCursorPos-1);
}
el if(curMouPos < curMouPos)
{
this->tCursorPosition(curCursorPos+1);
}el
{
QLineEdit::mouPressEvent(event);
}
怎么会得糖尿病}
3,事件过滤器
bool loginDlg::eventFilter(QObject *obj, QEvent *event)
{
if(obj == ui->nameEdit&& event->type() == QEvent::KeyPress)    {
QKeyEvent* keyevent = static_cast<QKeyEvent*>(event);        if(keyevent->key() == Qt::Key_Tab)
{
focusNextChild();
int len = ui->pwdEdit->text().length();
ui->pwdEdit->tSelection(len,len);
ui->pwdEdit->tFocus();
return true;
}el return fal;
}
el return fal;
}

本文发布于:2023-07-05 16:10:40,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1080101.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:部件   事件   词语   格式
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图