Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Sasha от Апрель 25, 2014, 17:57



Название: [РЕШЕНО] Как убрать текстовый мигающий курсор в QLineEdit?
Отправлено: Sasha от Апрель 25, 2014, 17:57
Здравствуйте,
собственно весь вопрос отражён в теме.
Как убрать текстовый мигающий курсор в QLineEdit? Причём желательно оставить QLineEdit редактируемым.


Название: Re: Как убрать текстовый мигающий курсор в QLineEdit?
Отправлено: Sasha от Апрель 26, 2014, 20:26
Так должно работать

Код
C++ (Qt)
vodi focusOutEvent(QFocusEvent *e)
{
... some work ...
  QLineEdit::focusOutEvent(e);
}

Что-то я не понял, что это должно сделать. Или за some work что-то скрывается? Если some work нету, то здесь же просто ненужный посредник обработчика focusOutEvent.
Либо мой вопрос не понят. А вопрос такой:
Есть QLineEdit. В стандартной реализации, при наличии фокуса ввода, он имеет мигающий текстовый курсор, который позволяет пользователю видеть место в тексте в которое попадут набираемые им символы и кроме того - это ещё и один из способов показать, что в данный момент фокус находится в этом поле.
А я хочу, чтобы было всё тоже самое (QLineEdit действовал так как ему и положено по умолчанию: и получал фокус, и при нажатии клавишь печатал соответствующие символы, и т.д.),  НО только ни при каких обстоятельствах не отображал бы мигающий курсор.


Название: Re: Как убрать текстовый мигающий курсор в QLineEdit?
Отправлено: VPS от Апрель 26, 2014, 22:14
Посмотрите здесь (http://qt-project.org/forums/viewthread/1156).
Только надо возвращать ширину курсора, равную нулю.


Название: Re: Как убрать текстовый мигающий курсор в QLineEdit?
Отправлено: Sasha от Апрель 28, 2014, 11:30
Посмотрите здесь (http://qt-project.org/forums/viewthread/1156).
Только надо возвращать ширину курсора, равную нулю.
Спасибо, помогло.
Только плохо, что если нужно в приложении поддерживать смену стилей на лету, при каждой такой смене, переустанавливать стиль для LineEdit-а