GtkEntry中没有得到键盘输入
问题描述:
我有下面这段代码GTK3
:GtkEntry中没有得到键盘输入
(...)
cmd_bar = gtk_entry_new();
gtk_editable_set_editable(GTK_EDITABLE(cmd_bar), TRUE);
gtk_entry_set_visibility(GTK_ENTRY(cmd_bar), TRUE);
gtk_widget_grab_focus(GTK_WIDGET(cmd_bar));
gtk_grid_attach (GTK_GRID (grid), GTK_WIDGET(cmd_bar), 0, 1, 2, 1);
gtk_widget_show(cmd_bar);
(...)
它显示了GtkEntry
正确的,但它不显示从键盘输入任何内容。如果我粘贴一些字符串,它会被正常接受。
我该如何解决这个问题?
答
[gtk_widget_grab_focus]
原因控件有键盘焦点为GtkWindow
这是 内。widget
必须是可聚焦的小部件,例如GtkEntry
; 类似GtkFrame
将无法正常工作。更确切地说,它必须设置
GTK_CAN_FOCUS
标志。使用gtk_widget_set_can_focus()
修改该标志。小部件也需要实现和映射。这通过 表示相关信号。 在创建 小部件后立即抓住焦点可能会失败并导致严重警告。
为了解释实现和地图,检查"Those “realize” & “map” widget signals"。