qt - 隐藏 QLineEdit 闪烁的光标

标签 qt cursor hide caret qlineedit

我正在研究 QT v5.2

我需要隐藏 QLineEdit 的闪烁光标(插入符号)永久。
但同时,我想要 QLineEdit可编辑(所以 readOnly 和/或设置 editable false 对我来说不是一个选项)。

我已经在更改 QLineEdit 的背景颜色当它聚焦时,我就会知道是哪个 QLineEdit小部件正在编辑。
对于我的要求,光标(闪烁的文本光标)显示不应该在那里。

我试过 styleSheets ,但我无法隐藏光标 ( {color:transparent; text-shadow:0px 0px 0px black;} )
有人可以让我知道我怎样才能做到这一点?

最佳答案

没有标准的方法可以做到这一点,但您可以使用 setReadOnly隐藏光标的方法。当您调用此方法时,它会禁用键的处理,因此您需要强制执行它。
继承自 QLineEdit 并重新实现 keyPressEvent .

LineEdit::LineEdit(QWidget* parent)
 : QLineEdit(parent)
{
  setReadOnly(true);      
}

void LineEdit::keyPressEvent(QKeyEvent* e)
{
  setReadOnly(false);
  __super::keyPressEvent(e);
  setReadOnly(true);
}

关于qt - 隐藏 QLineEdit 闪烁的光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25180628/

相关文章:

java - SQLite 查询 - 一旦找到特定项目就停止从数据库返回行

java - Cursor 是否有独立的数据,或者它只是一个指向数据的指针?

html - 使用 CSS 隐藏仅包含空格的元素

c++ - Qt:如何在选择项目时显示图标

qt - QWebEngineView 创建窗口

c++ - QT对话框关闭和删除

javascript - 使用 javascript 在页面加载之前隐藏 HTML 表单

c++ - 窗口显示后如何调用函数?

C ANSI 转义码

javascript - Jquery 隐藏显示无法正常工作