Russian Qt Forum
Ноябрь 26, 2024, 02:10
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Дополнительные компоненты
>
Русский язык в QScintilla 2
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Русский язык в QScintilla 2 (Прочитано 8421 раз)
Mixolap
Гость
Русский язык в QScintilla 2
«
:
Ноябрь 29, 2006, 17:14 »
Вместо русских букв вопросики, подскажите плз как поправить (WinXP)
Записан
Mikhail
Программист
Offline
Сообщений: 587
Русский язык в QScintilla 2
«
Ответ #1 :
Ноябрь 29, 2006, 18:04 »
QsciScintilla * scintilla = new QsciScintilla( parent );
scintilla->setUtf8(true)
Записан
Mixolap
Гость
Русский язык в QScintilla 2
«
Ответ #2 :
Ноябрь 29, 2006, 18:21 »
Пребольшое спасибо, а есть ли там возможность подсветки текущей линии?
И еще, когда делаю свой класс, наследуя его от QsciScintilla, у меня программа вываливается, не успев добраться до main-а, может в курсе в чем тут проблема?
Записан
Mikhail
Программист
Offline
Сообщений: 587
Русский язык в QScintilla 2
«
Ответ #3 :
Ноябрь 29, 2006, 19:31 »
Подсветка текущей линии:
QsciScintilla * scintilla = new QsciScintilla( parent );
scintilla->setCaretLineVisible(true);
Цитировать
И еще, когда делаю свой класс, наследуя его от QsciScintilla, у меня программа вываливается, не успев добраться до main-а, может в курсе в чем тут проблема?
Посоветовать без кода не могу.
А зачем наследовать QsciScintilla?
Записан
Mixolap
Гость
Русский язык в QScintilla 2
«
Ответ #4 :
Ноябрь 29, 2006, 20:13 »
Ну вообще класс, теперь наследование точно не нужно
Блин, как я сие мог в мануале пропустить, буду внимательнее вкуривать.
Премного благодарен.
добавлено спустя 15 минут:
И последний вопрос (в мануале не нашел):
Подсветка пар begin end (для Pascal), или {} (для С++) ?
надеюсь вопрос понятен.
Записан
Mikhail
Программист
Offline
Сообщений: 587
Русский язык в QScintilla 2
«
Ответ #5 :
Ноябрь 29, 2006, 20:23 »
Пока разбираюсь.
Если поймешь раньше отпишись
добавлено спустя 5 минут:
А возможность должна быть.
Эта функциональность доступна в Notepad++, который в качестве редактора использует Scintilla.
Записан
Mixolap
Гость
Русский язык в QScintilla 2
«
Ответ #6 :
Ноябрь 29, 2006, 20:28 »
Использую такой код:
textEdit = new QsciScintilla;
textEdit->setUtf8(true);
textEdit->setCaretLineVisible(true);
textEdit->setAutoIndent(true);
textEdit->setIndentationGuides(true);
textEdit->setBraceMatching(QsciScintilla::SloppyBraceMatch);
подсветка работает, но для {} (хорошо догадался проверить), только у меня косяк, так как пришлось в QsciScintilla добавлять язык оберон и переделывал я его с паскаля, кажись, ну короче, мне надо чтоб begin end светил, а он мне гад {} светит, вот буду репу чесать.
добавлено спустя 4 минуты:
по ходу
textEdit->setBraceMatching(QsciScintilla::SloppyBraceMatch);
подсвечивает скобки и границы блоков.
А знаешь как сделать нумерацию строк и свертку камментов?
Записан
Mikhail
Программист
Offline
Сообщений: 587
Русский язык в QScintilla 2
«
Ответ #7 :
Ноябрь 29, 2006, 20:41 »
Нумерация строк у скинтиллы уже есть, только поле нумерации не видно.
Сделай
scintilla->setMarginWidth(0, 40);
40 - ширина, для нумерации в несколько тысяч строк потребуется увеличить.
либо автоматом в зависимости от числа строк. По сигналу от скинтиллы.
скобки подсвечиваются, Подскажи если знаешь как изменить цвет выделения
Записан
Mixolap
Гость
Русский язык в QScintilla 2
«
Ответ #8 :
Ноябрь 29, 2006, 20:52 »
Добился нумерации через:
textEdit->setMarginLineNumbers(1,true);
а видно становится после setLexer(new QsciLexerOberon);
Цвет выделения:
textEdit->setMatchedBraceForegroundColor(QColor(255,0,0));
добавлено спустя 3 минуты:
Может еще пригодиться
void QextScintilla::setMatchedBraceBackgroundColor (const QColor & col)
добавлено спустя 2 минуты:
Хм, заметил, что notepad++ не поддерживает подсветку begin end.
Записан
Mikhail
Программист
Offline
Сообщений: 587
Русский язык в QScintilla 2
«
Ответ #9 :
Ноябрь 29, 2006, 20:56 »
Для нумерации строк используется нулевое поле.
Всего их кажется пять.
поле 1 которое ты используеш для нумерации строк используется для маркеров
с которыми я пока не разобрался.
Если знаешь как установить маркер в требуемой строке (например в строке с ошибкой компиляции) - подскажи.
Записан
Mixolap
Гость
Русский язык в QScintilla 2
«
Ответ #10 :
Ноябрь 29, 2006, 21:48 »
Маркер удалось установать на линию line так:
textEdit->setMarginWidth(1,17);
textEdit->markerDefine(QsciScintilla::CircledPlus,BOOKMARK_MARKER);
textEdit->setMarginMarkerMask (1,1<<BOOKMARK_MARKER);
textEdit->markerAdd(line,BOOKMARK_MARKER);
добавлено спустя 39 секунд:
BOOKMARK_MARKER установил равным 4
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...