crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

void*
  опции профиля:
сообщение 5.6.2008, 11:13
Сообщение #1


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


добрый день! есть вопрос:
как сделать чтобы если в QTextEdit'е ввели символ { или : и нажали Enter, то курсор перемещается не в начало следующей строки, а на следующую строку и под этим символом?
заранее большое спасибо!

Сообщение отредактировал void* - 5.6.2008, 11:14
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
void*
  опции профиля:
сообщение 6.6.2008, 19:12
Сообщение #2


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


немного усовершенствовал:
void TextEdit::keyPressEvent(QKeyEvent *keyEvent) {
     if(keyEvent->key() == Qt::Key_Return) {
                        QString text = toPlainText();
                        if((text.right(1) == "{") || (text.right(1) == ":")) {
                                          n = textCursor().columnNumber();
                                          insertPlainText("\n");
                                          for(int i=0; i < n; ++i) insertPlainText(" ");
                                          return;
                                          }
                        if(text.right(1) == "}") {
                                         if(n) {
                                               n=0;
                                               QTextEdit::keyPressEvent(keyEvent);
                                               }
                                               }
                        if(n) {
                              insertPlainText("\n");
                              for(int i=0; i < n; ++i) insertPlainText(" ");
                              return;
                              }
                                          }
     QTextEdit::keyPressEvent(keyEvent);
}

(n - целочисленная переменная, хранящаяся в классе и инициализирущаяся в конструкторе для начала нулем)

Сообщение отредактировал void* - 6.6.2008, 19:14
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 23.6.2025, 4:02