QScintilla, Подробнее |
Здравствуйте, гость ( Вход | Регистрация )
QScintilla, Подробнее |
edwardoid |
24.2.2009, 17:50
Сообщение
#1
|
Участник Группа: Участник Сообщений: 171 Регистрация: 1.5.2008 Из: Ереван, Армения Пользователь №: 164 Спасибо сказали: 0 раз(а) Репутация: 0 |
Имхо, каждый чел когда начинает писать GUI-приложения страется написать редактор. По ходу если пишешь на Qt то для нормального редактора в конце приходится использовать QScintilla.
А документация у него совсем никудышная и иерархия классов не оечьн понятна с первого взгляда. Если, вы, господа не против, давайте соберем тут решения на проблемы с которыми сталкиваешься, когда используешь QScintilla. Проблема: Как модифицировать поведение аутокомплита? Т.е. как привязать появление окошка аутокомплита к какому-то хоткею или связке клавиш? Я покопался в сырцах библиотеки, нигде ничего "Qt::Key" не нашел. И даже среди функций по названию ни одно вроде не подходило. Если не сложно покопайтесь и вы. Помогите, плз. |
|
|
void* |
24.2.2009, 18:24
Сообщение
#2
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
Цитата Имхо, каждый чел когда начинает писать GUI-приложения страется написать редактор. По ходу если пишешь на Qt то для нормального редактора в конце приходится использовать QScintilla. А документация у него совсем никудышная и иерархия классов не оечьн понятна с первого взгляда. Если, вы, господа не против, давайте соберем тут решения на проблемы с которыми сталкиваешься, когда используешь QScintilla. идея хорошая, и самое главное может быть востребованной Цитата Проблема: Как модифицировать поведение аутокомплита? Т.е. как привязать появление окошка аутокомплита к какому-то хоткею или связке клавиш? оно? Цитата virtual void autoCompleteFromAll () virtual void autoCompleteFromAPIs () virtual void autoCompleteFromDocument () т.к. это слоты, то можно вызывать по нажатию на любую клавишу |
|
|
Litkevich Yuriy |
24.2.2009, 18:32
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
edwardoid |
24.2.2009, 19:47
Сообщение
#4
|
Участник Группа: Участник Сообщений: 171 Регистрация: 1.5.2008 Из: Ереван, Армения Пользователь №: 164 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не понял. Во первых, они виртуальные. Не должен ли я их сам описать? И какая разница между этими функциями?? Которая именно отображает окно аутокомплита?
Например при попытке :
showAutoComplet переменная типа QAction*. Ничего не происходит. UPD. Перепробовал все сигналы от QAction, ничего не помогает ;( Сообщение отредактировал edwardoid - 24.2.2009, 20:14 |
|
|
void* |
24.2.2009, 22:14
Сообщение
#5
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
Цитата Не понял. Во первых, они виртуальные. Не должен ли я их сам описать? это лишь для возможности самому полностью переписать эти функции, если возникнет такая надобность. Можешь не обращать на это внимания. Цитата И какая разница между этими функциями?? Которая именно отображает окно аутокомплита? Информация для автокомплита получается двумя способами. Первый - из так называемых API-файлов, т.е. предварительно составленных файлов со списком всех функций, макросов и т.п. Второй - берется во время выполнения программы из текущего текста QsciScintilla. Слот autoCompleteFromAll() получает информацию для автокомплита из обоих источников, т.е. лучше используй его. Цитата Например при попытке : ... Ничего не происходит. QAction здесь не причем. Во-первых у тебя опечатка здесь, сигнал называется triggered(), а не tiggered()
Во-вторых вот так у меня работает(хотя в твоем примере тоже должно работать, исправь только опечатку):
П.С. Если интересно, то вот примерно так загружаются API-файлы в моей IDE:
А на реально используемые примеры API-файлов можешь взглянуть здесь. Сообщение отредактировал void* - 24.2.2009, 22:04 |
|
|
edwardoid |
24.2.2009, 22:37
Сообщение
#6
|
Участник Группа: Участник Сообщений: 171 Регистрация: 1.5.2008 Из: Ереван, Армения Пользователь №: 164 Спасибо сказали: 0 раз(а) Репутация: 0 |
твой код у меня скомпилился, но никак не реагирует на мои нажатия.... хотя есть, что комплитить.
|
|
|
void* |
24.2.2009, 22:47
Сообщение
#7
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
Значит нет информации для автокомплита. Я проверил у себя в программе этот код и он работает. Но когда нечего показывать для автокомплита, то он ничего не отображает
Кстати ты случайно не забыл написать чтобы при создании редактора выполнялось это:
? Сообщение отредактировал void* - 24.2.2009, 22:49 |
|
|
edwardoid |
25.2.2009, 12:27
Сообщение
#8
|
Участник Группа: Участник Сообщений: 171 Регистрация: 1.5.2008 Из: Ереван, Армения Пользователь №: 164 Спасибо сказали: 0 раз(а) Репутация: 0 |
У меня тоже было, но что-то не пашет. Даже когда в ауто комплите есть что показывать. // Кстати как здесь http://www.forum.crossplatform.ru/index.ph...ost&p=15279 ты привязал api к QsciScintilla??? Я так понял, api это переменаня типа QsciAbstractAPIs?? Сообщение отредактировал edwardoid - 25.2.2009, 13:32 |
|
|
AD |
25.2.2009, 13:04
Сообщение
#9
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
CODE this->setAutoCompletionSource(QsciScintilla::AcsAll); У меня тоже было, но что-то не пашет. Даже когда в ауто комплите есть что показывать. Бррр! edwardoid, прошу Вас, для таких малых кусков кода используйте тег code. А для больших кусков сочетание code and expand |
|
|
edwardoid |
25.2.2009, 20:53
Сообщение
#10
|
Участник Группа: Участник Сообщений: 171 Регистрация: 1.5.2008 Из: Ереван, Армения Пользователь №: 164 Спасибо сказали: 0 раз(а) Репутация: 0 |
void* есть идеи?
|
|
|
Текстовая версия | Сейчас: 7.11.2024, 3:11 |