2016-07-29 9 views
-1

Ich verwende GTK + 2 für GUI in C-Sprache. Ich habe 10x10 Schaltflächen in meinem Code. Und wenn ich meinen Code ausführe, ist die erste Taste (button[0][0]) standardmäßig fokussiert. Wie kann ich verhindern, dass diese Schaltfläche standardmäßig aktiviert wird?Wie Sie verhindern, dass die Schaltfläche standardmäßig fokussiert wird

Code:

table = gtk_table_new(10, 10, TRUE); 

for (int row=0; row<10; row++) { 
    for (int col=0; col<10; col++) { 
     button[row][col] = gtk_button_new_with_label(" "); 
     g_signal_connect(G_OBJECT(button[row][col]), "button-release-event", G_CALLBACK(buttonClicked), NULL); 
     gtk_button_set_focus_on_click(GTK_BUTTON(button[row][col]), FALSE); 
     gtk_table_attach_defaults(GTK_TABLE(table), button[row][col], col, col+1, row, row+1); 
    } 
} 

Antwort

0

Wenn Sie das Fenster anzuzeigen, rufen Sie gtk_widget_grab_focus() auf das Widget, das Sie stattdessen konzentrieren möchten.

Wenn Sie nicht möchten, dass die Schaltflächen im Raster überhaupt scharf gestellt werden können, rufen Sie gtk_widget_set_can_focus() an.