Stringliste in GLib / GTK2

stimmen
1

Wie mit Liste von Zeichenketten in GLib / GTK2 arbeiten? Bevor ich mit QStringList in Qt-Bibliothek gearbeitet und jetzt Nachschlag, wie die gleichen Dinge in GLib / GTK2 zu tun. Ich weiß, dass es GList und GString Datentypen. Aber ich verstehe nicht, wie man richtig mit ihm arbeitet. Unsicher versucht, mit Keywords glib gstring glist 'to google hilft mir nicht. Ich kann nicht gutes Tutorial finden.

In wirklich brauche ich jetzt einige Grundlagen funktional. Liste erstellen, mit Streichern in Schleife füllen, prüfen Sie, ob die Liste eine Liste einige String und klar enthält. Das ist alles.

In Qt kann ich tun

QStringList list;
list << first << second << third;
for (int i = 0; i < list.length(); ++i) {
    QString str = list.at(i);
    if (str == second) {
        doSomeActions();
    }
}
list.clear();

Welche analogen in GLib? In realer Anwendung Strings wird dynamisch zugewiesen werden. Also in clear()allen Zeiger müssen befreit werden.

Veröffentlicht am 20/10/2018 um 12:32
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
3

Die Gnome-Entwickler-Dokumentation gibt Antworten auf alle Ihre Fragen. Für GList gibt es bereits in den Beschreibungen angegebenen Beispiele.

https://developer.gnome.org/glib/2.56/glib-Doubly-Linked-Lists.html

https://developer.gnome.org/glib/2.56/glib-Strings.html

Da Sie nicht wirklich eine bestimmte Frage zu stellen, kann ich Ihnen nicht eine bestimmte Antwort geben. Fühlen Sie sich frei wieder zu fragen, ob etwas unklar ist nach der Lektüre und die gegebenen Ressourcen auszuprobieren.

Der QT-Schnipsel mit GList würde wie folgt aussehen (mit dynamischer Zuweisung):

GList *list = NULL;

g_list_append(list, g_strdup("first"));
g_list_append(list, g_strdup("second"));
g_list_append(list, g_strdup("third"));
for (GList *l = list; l != NULL; l = l->next) {
    if (g_strcmp(l->data, "second") == 0) {
        doSomeActions();
    }
}

g_list_free_full(list, g_free);
Beantwortet am 20/10/2018 um 12:46
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more