Можно ли заменить в виджете gtk2 по умолчанию совместимые пользовательские виджеты, полученные из оригинала? - PullRequest
0 голосов
/ 17 декабря 2011

(Это теоретический вопрос, поцарапать личный зуд, поэтому мне не интересны ответы «ИМХО это не рекомендуется», потому что это просто что-то, чтобы исправить некоторые мелочи, а не устанавливать на ваша машина и т.д ...; -)

Я создал пару пользовательских виджетов Gtk, которые расширяют базовые виджеты, такие как GtkFileChooser и GtkNotebook.

(не много, но это что-то, поскольку вчера я ничего не знал о gtk или c, так что это скорее теоретический вопрос - однако, если это невозможно, нет особого смысла изучать gtk2)

Однако я хотел бы использовать эти виджеты во всех моих приложениях gtk2.

Можно ли переопределить системные виджеты по умолчанию, не перестраивая библиотеки gtk2 из исходного кода?

Похоже, что gtk-modules - это то, что нужно, но документация кажется скудной, если только в моем поиске чего-то не хватает.

Цель этого заключается в том, что GtkNotebook не поддерживает несколько строк вкладок, однако он используется в Geany, Anjuta, Bluefish и многих других редакторах на основе gtk2. Я могу перекомпилировать geany, Anjuta и bluefish, чтобы использовать вместо этого мой виджет, но я бы предпочел поменять его местами через доску.

1 Ответ

0 голосов
/ 18 декабря 2011

Обычно правильное решение для повторного использования виджетов между различными приложениями заключается в создании динамической библиотеки, которая добавляет виджеты.

Помните, что желательно создавать реальные подклассы GObject с отдельным GType. Кроме того, тривиально добавить поддержку, скажем, самоанализа, чтобы ваши виджеты могли также использоваться в языковых привязках и т. Д.

...