GTK - Запускать функцию при закрытии окна - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь запустить простую функцию при нажатии кнопки «x» в моем окне GTK, но у меня возникают проблемы с ее работой. Я получаю эту ошибку каждый раз, когда запускаю ее:

(process:17950): GLib-GObject-WARNING **: 11:58:51.480: ../../../../gobject/gsignal.c:2523: signal 'delete-event' is invalid for instance '0x55a183d991a0' of type 'GtkApplication'

Вот мои функции:

main ():

int main(int argc, char **argv) {
    GtkApplication *app;
    int status;

    // Set up the application and start it
    app = gtk_application_new ("com.sds.hashcrack.server", G_APPLICATION_FLAGS_NONE);
    g_signal_connect (app, "activate", G_CALLBACK (init), NULL);
    g_signal_connect (app, "delete-event", G_CALLBACK (test), NULL);
    status = g_application_run (G_APPLICATION (app), argc, argv);
    g_object_unref (app);

    return status;
}

test ():

gboolean test(GtkWidget *widget, GdkEvent  *event, gpointer   user_data) {
    g_print("Closed");
    return true;
}

Может ли кто-нибудь пролить свет на то, что я делаю не так? Большое спасибо

1 Ответ

2 голосов
/ 28 мая 2020

Сигнал «удалить событие» доступен на GtkWidget экземплярах, но не на GtkApplication экземплярах.

Вам потребуется подключить test обратный вызов сигнала delete-event на GtkWindow, который вы добавляете в свое приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...