Как сделать делегаты редакторов Qt «липкими» - PullRequest
2 голосов
/ 03 февраля 2011

Я переношу приложение из доморощенного пользовательского интерфейса в Qt. Одним из наиболее важных элементов управления является панель свойств, которая берет объект, который реализует интерфейс API моего отражения и выплевывает диалоговое окно, содержащее редакторы для всех свойств.

Я написал реализацию QAbstractItemModel для своей системы свойств и написал несколько обработчиков для различных типов внутри QTableView. Я также написал QItemDelegate для создания редакторов для свойств.

Беда в том, что я бы хотел, чтобы редакторы зависали, а не были просто всплывающими окнами. Это сделано для того, чтобы они могли обрабатывать рендеринг свойства, требовать меньше щелчков для работы, а также не исчезать, как только что-то получает фокус, например, моя кнопка цвета - редактор (в котором есть слоты, слушающие изменения цвета) исчезает как только появляется диалоговое окно выбора цвета, это означает, что ничего не происходит, чтобы прослушать изменения.

Я не могу найти какие-либо варианты сохранения редакторов. Я лаю здесь не то дерево или есть более подходящий способ сделать это? Я пытался делать вещи «Qt», но я уже бью кирпичные стены.

Спасибо

1 Ответ

3 голосов
/ 03 февраля 2011

Существует метод QAbstractItemView :: openPersistentEditor () .

...