Как выбрать второй список - PullRequest
0 голосов
/ 28 декабря 2018

Я работаю над проектом по выбору определенного файла с определенного диска (USB) на Raspberry Pi.Эти списки должны управляться аппаратным обеспечением gpio (кодировщик, кнопки).У меня есть два списка.1 содержит диск, другой содержит файлы на выбранном диске.Кажется, единственная проблема, с которой я столкнулся, - это переключиться со списка дисков на список файлов после выбора диска.

То, что я нашел в справочном руководстве, я подозреваю, что это работает:

static void drive_selected(GtkWidget* widget, gpointer data){
    gtk_list_box_select_row(GTK_LIST_BOX(data), gtk_list_box_get_row_at_index(GTK_LIST_BOX(data), 1));
}

Но я всегда получаю это в результате:

(a.out:24969): GLib-GObject-WARNING **: invalid cast from 'GtkListBoxRow' to 'GtkListBox'

(a.out:24969): GLib-GObject-WARNING **: invalid cast from 'GtkListBoxRow' to 'GtkListBox'

(a.out:24969): Gtk-CRITICAL **: gtk_list_box_get_row_at_index: assertion 'GTK_IS_LIST_BOX (box)' failed

(a.out:24969): Gtk-CRITICAL **: gtk_list_box_select_row: assertion 'GTK_IS_LIST_BOX (box)' failed

И ничего не выбирается.

1 Ответ

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

Вы показываете нам одну строку кода, так что я просто догадываюсь здесь ...

Предполагая, что drive_selected() является обратным вызовом для сигнала "выбранный ряд", ваша сигнатура функции неверна.Это должно быть:

void drive_selected (GtkListBox *box, GtkListBoxRow *row, gpointer user_data)

В настоящее время вы пытаетесь использовать второй аргумент (ListBoxRow) в качестве ListBox.

...