Есть ли способ добавить свойство в виджет / объект GTK для хранения дополнительной информации о нем - PullRequest
0 голосов
/ 29 декабря 2018

У меня много GTK-виджетов / GObjects в моем проекте.Я хотел бы иметь возможность прикреплять некоторую информацию к каждому объекту по мере его создания, а затем, когда объект передается какой-либо общей библиотечной подпрограмме, иметь возможность получать эту информацию, специфичную для виджета / объекта GObject, для целей обработки

Iзаглянул в руководство GObject и думаю, что смогу с помощью некоторых из этих процедур.Но каждый раз, когда я что-то проверяю, мне приходится отслеживать множество определений, которые требуют дальнейшего изучения.Я потерян.Я искал какой-нибудь простой пример, который мог бы представить все это в перспективе.

Я хотел бы иметь возможность ввести что-то вроде (Пример кода в FreeBasic)

dim as GtkWidget Ptr widget = gtk_button_new("Press Me")

, а затем добавить строкучто-то вроде этого

add_property(widget,"username","Andrew Loy",-1)

Затем в какой-то стандартной процедуре сообщения об ошибках библиотеки, где виджет хранится в некоторой общей куче.

Sub ReportError(widget as GtkWidget Ptr)
dim as Zstring ptr     NameOfUser

    get_property(widget,"username",@NameOfUser,-1)
    print *NameOfUser

Я хочу, чтобы виджет / объект GObject содержал больше информации, чемобеспечивается стандартом GTK.Достаточно простого указателя.

1 Ответ

0 голосов
/ 31 декабря 2018

Check g_object_set_data(), что позволяет связать любой указатель с GObject, используя строковый ключ.

...