Я только начал изучать GTK. Я просматривал исходный код gtk + 3.0.0, я нашел реализацию меток _get_type() для некоторых типов объектов gtk, но некоторые из них не имеют реализации этого метода, например GtkRange
. Есть ли причина для этого? Насколько я понял из Справочного руководства GObject, метод _get_type()
регистрирует тип объекта в системе типов.gtk _get_type() функция реализация
ответ
Функция get_type()
необходима для всех типов, зарегистрированных как GType. GObject (библиотека) предоставляет макросы удобства для создания правильной реализации функции get_type()
с учетом таких вещей, как инициализация с потоком или динамическая регистрация типа.
макрос, который используется для подклассов GObject (типа): G_DEFINE_TYPE()
, но внутри GTK + вы также найдете G_DEFINE_TYPE_WITH_CODE()
, используемый обычно, когда тип также реализует интерфейсы; G_DEFINE_ABSTRACT_TYPE()
и G_DEFINE_ABSTRACT_TYPE_WITH_CODE()
, используемые для абстрактных типов; и, наконец, G_DEFINE_TYPE_WITH_PRIVATE()
и G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE()
, которые определяют подклассы GObject с частными данными, избегая вызова g_type_class_add_private()
внутри функции инициализации класса.
Типы в штучной упаковке (обертки GType вокруг обычных стальных конструкций) также имеют G_DEFINE_BOXED_TYPE()
, а типы интерфейсов - G_DEFINE_INTERFACE()
. более
информация доступна в справочнике API для GObject:
https://developer.gnome.org/gobject/stable/gobject-Type-Information.html#G-DEFINE-TYPE:CAPS
Большое спасибо. Я не знал, что существует так много макросов. – sap
- 1. Реализация перетаскивания мыши Gtk
- 2. Реализация Промежуточная функция Excel
- 3. Функция glibc rand реализация
- 4. Friend функция и реализация
- 5. Реализация `distrib` Функция
- 6. Показать Gtk Spinner, пока функция работает только
- 7. GTK + функция вызова каждые x секунд
- 8. Функция обратного вызова вызова GTK для виджета
- 9. beforeCreate функция РЕАЛИЗАЦИЯ лучшая практика
- 10. C++ Реализация кучи Медиана Функция
- 11. реализация интерфейса и общая функция
- 12. Java-реализация Oracle DBMS_UTILITY.GET_HASH_VALUE Функция
- 13. javascript таймер реализация пауза функция
- 14. Charting in Gtk/Gtk #
- 15. Gtk # Темы, GTK-Wimp
- 16. Передача Gtk :: Window & parameter to Gtk :: MessageDialog
- 17. Тема Gtk в GTK # (Windows)
- 18. gtk: почему Gtk :: Main :: Итерация?
- 19. Отменить с GTK TextView
- 20. GTK Progressbar pulsing python
- 21. Wordpress do_shortcode функция реализация после цикла
- 22. Реализация Undo - функция повтора в Qt?
- 23. Реализация пауза/Функция возобновления в игре Java
- 24. mkl библиотека DCT функция реализация выпуск
- 25. TensorFlow: реализация расстояния Spearman как объективная функция
- 26. Реализация встряхивания Функция/слайд на iPhone SDK
- 27. Native функция не реализация не найдено
- 28. Реализация фильтра, функция которого принимает аргумент
- 29. HTML5/kineticJS реализация "getIntersection" функция (Canvas Game)
- 30. Функция Jquery .click() Реализация в классе Проблема
Каждый виджет должен иметь '_get_type()' функции, либо явно или неявно закодированные определенные 'G_DEFINE_TYPE' и производные макросы: HTTP : //developer.gnome.org/gobject/stable/gobject-Type-Information.html#G-DEFINE-TYPE: CAPS – ntd
@ntd Я не знал о различных типах макросов .. Большое спасибо – sap