0

メイン関数にたくさんのチェック ボタン (cbuttons[]) があります。

インストールボタンをクリックすると、チェックボタンのある配列がコミットされます。

int main(int argc, char *argv[]) {

GtkWidget *cbuttons[13];

[...]

for(i = 0; i < 6; i++) {
    cbuttons[i] = gtk_check_button_new_with_label(cbuttons_label[i]);
    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cbuttons[i]), TRUE);
    gtk_box_pack_start(GTK_BOX(vbox_lcbuttons), cbuttons[i], FALSE, TRUE, 0);
    gtk_widget_show(cbuttons[i]);
 }

   [...]

   g_signal_connect(button_install, "clicked", G_CALLBACK(install), &cbuttons);

}

今、data[] を使用してさまざまなボタンの状態を分析したいのですが、うまくいきません。

警告: 'void *' ポインターを逆参照しています。

私はGTKが初めてです。多分それはこれを行う方法が間違っていますか?誰でも正しい方法で私を助けることができますか? (英語が下手で申し訳ありません。その言語にはあまり詳しくありません。)

void install(GtkWidget *widget, gpointer data) {

if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(*data[0]))) {
    func1();
}
  if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(*data[1]))) {
    func2();
  }
  [...]

}
4

1 に答える 1