Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Программирование с использованием gtkmm 3. Виджет древовидного представления данных (TreeView)

Оригинал: Programming with gtkmm 3
Авторы: Murray Cumming, Bernhard Rieder, Jonathon Jongsma, Ole Laursen, Marko Anastasov, Daniel Elstner, Chris Vine, David King, Pedro Ferreira, Kjell Ahlstedt
Перевод: А.Панин

9.8.4. Захват и перемещение элементов (Drag and Drop)

Данный пример очень похож на пример работы с моделью представления данных для хранения деревьев, но в данном случае используются еще 2 дополнительных столбца, которые предназначены для указания на то, может ли строка захватываться и может ли она принимать захваченные и перемещаемые строки. В примере используется унаследованный от класса Gtk::TreeStore класс, в котором реализовано перекрытие виртуальных методов таким способом, как это описано в разделе "Механизм захвата и перемещения элементов Drag and Drop".

Рисунок 9-6: Виджет древовидного представления данных с поддержкой захвата и перемещения строк
Виджет древовидного представления данных с поддержкой захвата и перемещения строк

Исходный код

Файл: examplewindow.h (Для использования совместно с gtkmm 3, а не с gtkmm 2)

Файл: treemodel_dnd.h (Для использования совместно с gtkmm 3, а не с gtkmm 2)

Файл: examplewindow.cc (Для использования совместно с gtkmm 3, а не с gtkmm 2)

Файл: main.cc (Для работы совместно с gtkmm 3, а не с gtkmm 2)

Файл: treemodel_dnd.cc (Для использования совместно с gtkmm 3, а не с gtkmm 2)

9.8.5. Всплывающие контекстные меню

Данный пример очень похож на пример использования модели представления данных для хранения списков (ListStore), но в нем создается унаследованный от класса Gtk::TreeView дочерний класс, в котором реализуется перекрытие метода button_press_event с инкапсуляцией кода модели представления данных. Обратитесь к разделу "Всплывающее контекстное меню" для ознакомления с подробностями реализации.

Рисунок 9-7: Виджет древовидного представления данных с всплывающим контекстным меню
Виджет древовидного представления данных с всплывающим контекстным меню

Исходный код

Файл: examplewindow.h (Для использования совместно с gtkmm 3, а не с gtkmm 2)

Файл: treeview_withpopup.h (Для использования совместно с gtkmm 3, а не с gtkmm 2)

Файл: treeview_withpopup.cc (Для использования совместно с gtkmm 3, а не с gtkmm 2)

Файл: examplewindow.cc (Для использования совместно с gtkmm 3, а не с gtkmm 2)

Файл: main.cc (Для использования совместно с gtkmm 3, а не с gtkmm 2)


Следующий раздел : 10. Раскрывающиеся списки (Combo Boxes).