qt(4)QLineEdit之文本不被选中
来源:互联网 发布:华宝证券软件下载 编辑:程序博客网 时间:2024/05/29 08:45
http://blog.sina.com.cn/s/blog_a6fb6cc90101b3b8.html
转自上面,分析得很到位。
文本被选中状态有以下几种情况:
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::Mouse) { focusPreviousChild(); return; }}
涉及的知识点:
1,qt自定义部件,然后在qtdesigner中把对应的部件提升下,
2,重写一些部件的事件函数
void PwdLineEdit::mouseDoubleClickEvent(QMouseEvent *){ return;}void PwdLineEdit::mouseMoveEvent(QMouseEvent *){ return;}void PwdLineEdit::keyPressEvent(QKeyEvent *event){ if(event->matches(QKeySequence::Copy)) { return; } else if(event->matches(QKeySequence::SelectAll)) { return; } else if(event->matches(QKeySequence::Paste)) { return; } else if(event->key() == Qt::Key_Home) { this->setCursorPosition(0); } else if(event->key() == Qt::Key_End) { this->setCursorPosition(this->text().length()); } else{ QLineEdit::keyPressEvent(event); }}void PwdLineEdit::mousePressEvent(QMouseEvent *event){ //鼠标位置 int curMousePos = cursorPositionAt(event->pos()); //光标位置 int curCursorPos = this->cursorPosition(); if(curMousePos < curCursorPos) { this->setCursorPosition(curCursorPos-1); } else if(curMousePos < curMousePos) { this->setCursorPosition(curCursorPos+1); }else { QLineEdit::mousePressEvent(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->setSelection(len,len); ui->pwdEdit->setFocus(); return true; }else return false; } else return false;}
0 0
- qt(4)QLineEdit之文本不被选中
- QLineEdit之文本不被选中
- QLineEdit之文本不被选中
- Qt 之 QLineEdit
- qt 之 QLineEdit
- Qt之QLineEdit
- Qt之QLineEdit
- css 文本不被选中
- Qt 之 QLineEdit 和 QRegExp
- qt学习笔记之QLineEdit
- QT之qss教程-QLineEdit
- Qt之国际化(系统文本-QMessageBox按钮、QLineEdit右键菜单等)
- 双击不选中文本
- Qt: QLineEdit圆角边框,选中时变色,显示图标
- Qt: QLineEdit圆角边框,选中时变色,显示图标
- Qt学习之路之QLineEdit
- Qt之QLineEdit之透明设置
- QT--------QLineEdit
- SERC2013 B Nested Palindromes
- 2014.3.18数据仓库 模糊查询 谷歌
- 无奈 无助
- AOJ-AHU-OJ-596 下一个K-number
- jQuery概述
- qt(4)QLineEdit之文本不被选中
- Email a LocalReport as a PDF Attachment
- Android中Intent传递对象的两种方法(Serializable,Parcelable)!
- android 权限整理
- xml的个人了解
- 第一讲Shader总篇
- Asterisk realtime 之SIP用户动态写入mysql 数据库
- 不同应用共享数据——keychain的使用
- 基于社会力模型的人群异常行为检测