QScintilla, Подробнее |
Здравствуйте, гость ( Вход | Регистрация )
QScintilla, Подробнее |
edwardoid |
24.2.2009, 17:50
Сообщение
#1
|
Участник Группа: Участник Сообщений: 171 Регистрация: 1.5.2008 Из: Ереван, Армения Пользователь №: 164 Спасибо сказали: 0 раз(а) Репутация: 0 |
Имхо, каждый чел когда начинает писать GUI-приложения страется написать редактор. По ходу если пишешь на Qt то для нормального редактора в конце приходится использовать QScintilla.
А документация у него совсем никудышная и иерархия классов не оечьн понятна с первого взгляда. Если, вы, господа не против, давайте соберем тут решения на проблемы с которыми сталкиваешься, когда используешь QScintilla. Проблема: Как модифицировать поведение аутокомплита? Т.е. как привязать появление окошка аутокомплита к какому-то хоткею или связке клавиш? Я покопался в сырцах библиотеки, нигде ничего "Qt::Key" не нашел. И даже среди функций по названию ни одно вроде не подходило. Если не сложно покопайтесь и вы. Помогите, плз. |
|
|
void* |
25.2.2009, 22:33
Сообщение
#2
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
ты привязал api к QsciScintilla??? Я так понял, api это переменаня типа QsciAbstractAPIs?? да, api - объект класса QsciAPIs. QsciAPIs - это класс, содержащий информацию для автокомплита, почитай внимательнее документацию по этому классу. Достаточно иметь только один объект этого класса, т.к. он shared. Нужно просто загрузить в него инфу из файлов и сделать QsciAPIs::prepare(), и для каждого используемого лексера установить эти API с помощью QsciLexer::setAPIs(). П.С. Цитата(official documentation) The QsciAPIs class represents the textual API information used in call tips and for auto-completion. API information is specific to a particular language lexer but can be shared by multiple instances of the lexer.
Raw API information is read from one or more files. Each API function is described by a single line of text comprising the function's name, followed by the function's optional comma separated parameters enclosed in parenthesis, and finally followed by optional explanatory text. A function name may be followed by a `?' and a number. The number is used by auto-completion to display a registered QPixmap with the function name. All function names are used by auto-completion, but only those that include function parameters are used in call tips. QScintilla only deals with prepared API information and not the raw information described above. This is done so that large APIs can be handled while still being responsive to user input. The conversion of raw information to prepared information is time consuming (think tens of seconds) and implemented in a separate thread. Processed information can be quickly saved to and loaded from files. Such files are portable between different architectures. QScintilla based applications that want to support large APIs would normally provide the user with the ability to specify a set of, possibly project specific, raw API files and convert them to prepared files that are loaded quickly when the application is invoked. |
|
|
Текстовая версия | Сейчас: 3.1.2025, 1:09 |