В QTextEdit как вы можете определить, когда пользователь вводит курсор в текстовую область только один раз? - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть QTextEdit с Text init, как:

write something here.... 

Теперь мне бы хотелось, чтобы стартовый сигнал сработал только один раз, поэтому, когда пользователь введет курсор мыши в текстовую область, строка будет удалена и текстовая область будет готова к записи. Мне нужно, чтобы он срабатывал только один раз, когда виджет активен.
Я только нашел:

connect( textEdit, SIGNAL( cursorPositionChanged( int para, int pos ) ), 
         <.....>,  SLOT( Position ( int para, int pos ) ) );

но я не знаю, как вызвать его один раз, или это правильный путь для этого.

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Вы можете disconnect это соединение в слоте Position.Таким образом, этот слот будет активирован только один раз.

Другой вариант - просто сохранить логическое значение в объекте, который получает сигнал, указывающий, следует ли ему что-то делать при вызове слота.

(Возможно, вы захотите «перевооружить» этот слот. Либо снова наберите connect, либо сбросьте логическое значение, в зависимости от того, какой вариант вы выбрали.)

1 голос
/ 09 февраля 2012

Если ваш QTextEdit виджет состоит из одной строки, вы можете использовать вместо него QLineEdit виджет. Затем вы можете позвонить setPlaceholderText("write something here.... "), чтобы получить желаемый эффект. Нажмите здесь для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...