Я работаю над попыткой установить кнопку в качестве программы по умолчанию в программе, чтобы, как только данные вводились в поля ввода, пользователь просто нажимал клавишу ввода, чтобы продолжить, вместо того, чтобы перетаскивать мышь или неловко нажимать на вкладки.
Мой код для этого:
gtk_entry_set_activates_default(__w_passwdEntry, true);
gtk_entry_set_activates_default(__w_uNameEntry, true);
gtk_widget_set_can_default(GTK_WIDGET(__w_loginBtn), true);
gtk_widget_grab_default(GTK_WIDGET(__w_loginBtn));
и я получаю ошибку в последней строке, ошибка гласит:
(app_name:2345): Gtk-WARNING **: gtkwidget.c:6796: widget not within a GtkWindow
Как мне связать кнопку с окном? Что и как мне определить, с каким окном мне нужно связать кнопку?
Я создал основы GUI в Glade, и я работаю над тем, чтобы делать все, кроме макета в коде.
Нашел ответ, использовал g_signal_connect по ссылке «активировать»:
g_signal_connect(__w_uNameEntry, "activate", G_CALLBACK(*credentialsCheck), NULL);
g_signal_connect(__w_passwdEntry, "activate", G_CALLBACK(*credentialsCheck), NULL);
Где credentialsCheck () — это функция, связанная с обратным вызовом кнопки входа в систему. Так что это не идеальное решение, но оно работает на данный момент.
Других решений пока нет …