Название: Снова проблемы с установкой фокуса на QListWidget Отправлено: Андрей80 от Июль 22, 2009, 18:46 Здравствуйте. Извините , что поднимаю вопрос неоднократно обсуждавшийся, (нашёл две ветки на вашем форуме, но не смог решить проблему).
Пишу простой текстовый редактор для кода, в нём над наследником QTextEdit в определённый момент должен появляться наследник QListWidget с списком методов и свойств переменной класса, о чём идёт речь, все прекрасно поняли. Под Виндовс всё работает таким образом: как только вызывается methidsList->show() (или methodsList->setVisible(true), в linux от этого пришлось отказатся, т к список не хочет становится видимым) фокус ввода передаётся ему. В линукс же при вызове methodsList->show() список появляется, но фокус ввода при этом остается у QTextEdit. В Windows я не могу сделать так, чтобы фокус был у QTextEdit, в Linux - наоборот, чтобы он был у QListWidget. Код Можете "на пальцах" объяснить, как работать с setFocus, setFocusPolicy? Буду благодарен. Название: Re: Снова проблемы с установкой фокуса на QListWidget Отправлено: break от Июль 23, 2009, 03:23 Если я правильно понял вы реализуете Code Completion - сори что не могу помочь по теме, можете попробовать посмотреть как сделано в QtCreator - работает и в Линукс и в Виндовс (там собственно не появляется весь список и это правильно т.к. будет загромождать весь экран для методов класса кот. были много раз перегружены, и даже фокус не уходит из редактора - и это правильно т.к. дополнитель кода - это доп. информация вроде, но реакцией на кнопочки "вверз", "вниз" перебираются варианты).
А вообше мое мнение что у пользователя не должно ничего перед глазами всплывать - я еще ни в одной программе не видел абсолютно корректного "дополнителя" - даже в креаторе иногда он как то застывает или появляется когда я не хочу и приходиться бегать с места на место для ого чтобы он исчез...Но это мелочи... Мне кажется информация которая повляется в этом всплывающем окошке должна быть внизу на специальной панельке (около или даже на панели статуса). Когда "комплетион" должен появиться она заполнена, когда нет - пустая, если надо заполнить но нет исходных данных unresolved или др... - и глазам не мешает и всегда знаешь где ее искать. Если бы в средах была такая опция("использовать невсплывающий постоянно прилепленный к одному месту дополнитель кода") - я бы всегда ее включал. Если вы согласитесь так сделать - то ваша проблема с фокусами отойдет. |