【问题标题】:widget not within a Gtk Window不在 Gtk 窗口中的小部件
【发布时间】:2016-02-26 18:06:04
【问题描述】:

我正在尝试将按钮设置为程序中的默认按钮,以便在输入框中输入数据后,用户只需按 Enter 键即可继续,而不是向上拖动鼠标或笨拙地按 Tab。

我的代码是:

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

如何将按钮与窗口相关联?那以及我将如何确定我需要将按钮与之关联的窗口是什么?

我在 Glade 中创建了 GUI 的基础知识,并且我正在努力做除了代码布局之外的所有事情。

【问题讨论】:

    标签: c++ linux gtk glade


    【解决方案1】:

    找到答案,使用 g_signal_connect 链接到“激活”:

    g_signal_connect(__w_uNameEntry, "activate", G_CALLBACK(*credentialsCheck), NULL);
    g_signal_connect(__w_passwdEntry, "activate", G_CALLBACK(*credentialsCheck), NULL);
    

    其中 credentialsCheck() 是链接到登录按钮回调的函数。所以这不是一个完美的解决方案,但它现在有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多