Was ist falsch an meinem Code?

2 Antworten

Um genaues zu sagen ist der kleine Code Abschnitt etwas wenig, aber ich könnte mir vorstellen das vllt. dort die verfügbaren Artikel iterierst und dann Visible setzt.

Was nun passieren kann ist, dass etwas gesucht wurde und visible entsprechend gesetzt wurde, jedoch sobald der search text neu evaluiert wird die vorherigen Visible Einstellungen bleiben. Du könntest also probieren das wenn kein search text vorhanden ist alles visible ist.

Wie gesagt alles nur Vermutung, das es etwas wenig Code ist.

Woher ich das weiß:Hobby – Ich programmiere seit 3 Jahren mit C#

Fischi32 
Beitragsersteller
 13.02.2025, 21:50

static gboolean filter_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer data) {

  gchar *artikelnummer = NULL;

  gtk_tree_model_get(model, iter, 0, &artikelnummer, -1);

  if (artikelnummer == NULL) {

    return TRUE;

  }

  GtkWidget *search_entry = GTK_WIDGET(data);

  const gchar *search_text = gtk_entry_get_text(GTK_ENTRY(search_entry));

  if (search_text == NULL) {

    search_text = "";

  }

  gboolean visible = TRUE;

  if (strlen(search_text) > 0) {

    visible = g_strrstr(artikelnummer, search_text) != NULL;

  }

  g_free(artikelnummer);

  return visible;

}


Das ist der ganze Code, den ich für das sortieren benutze. Dafür benutze ich die visible_func, ich habe sie nur für mich in filter_func umbenannt.

Wenn du die 2 entfernst, dann ist der Suchtext leer und deine Funktion setzt den visible-Wert auf den Initalwert und der ist bei dir "TRUE". Alsow ird alles angezeigt.