Russian Qt Forum
Май 02, 2024, 02:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QT4 QTextEdit cursor positon  (Прочитано 5706 раз)
C.H.
Гость
« : Октябрь 05, 2005, 10:46 »

Как в QT4 опеределить положение курсора в QTextEdit?
в Q3 было getCursorPosition ( int * para, int * index ).
А Q4 уже нема Грустный
Чё делать???

Пока накопал такое:

QTextEdit  *textEdit;
QTextCursor c;
c = textEdit->textCursor();
c.position() но эта фигня возвращает абсолютное положение в документе.
А хотелось бы знать строку и колонку (типа Х и У) курсора
Записан
KADABRA
Гость
« Ответ #1 : Октябрь 05, 2005, 16:46 »

Цитата: "C.H."
Как в QT4 опеределить положение курсора в QTextEdit?
в Q3 было getCursorPosition ( int * para, int * index ).
А Q4 уже нема Грустный
Чё делать???

Пока накопал такое:

QTextEdit  *textEdit;
QTextCursor c;
c = textEdit->textCursor();
c.position() но эта фигня возвращает абсолютное положение в документе.
А хотелось бы знать строку и колонку (типа Х и У) курсора

А cursorForPosition() не подойдёт? И может cursorRect()?
Записан
C.H.
Гость
« Ответ #2 : Октябрь 06, 2005, 13:34 »

Цитата: "KADABRA"
А cursorForPosition() не подойдёт? И может cursorRect()?

К сожелению нет Грустный
Эти функции возвращают велисину in viewport coordinates
Записан
C.H.
Гость
« Ответ #3 : Октябрь 12, 2005, 11:13 »

Тут народо подкинул идею
Код:

class MultiLineEdit : public QTextEdit{

int32 MultiLineEdit :: GetIndex (const QTextCursor &crQTextCursor ){
  QTextBlock           b;
  int                  column = 1;
  b = crQTextCursor.block();
  column = crQTextCursor.position() - b.position();
}

int32 MultiLineEdit :: GetLine (const QTextCursor &crQTextCursor ){
  QTextBlock              b,cb;
  int                     line = 1;
  cb = crQTextCursor.block();
  for(b = document()->begin();b!=document()->end();b = b.next()){
    if(b==cb)                                        return line
    line++;
  }
  return(line);
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.