我有以下GTK3代码:
(...)
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,但是它没有显示来自键盘的任何输入。如果我粘贴一些字符串,它通常会被接受。
我怎样才能解决这个问题?
发布于 2021-05-09 07:43:10
当我将应用程序从GTK3移植到GTK4时,我遇到了同样的问题,这与我能够在条目中粘贴和剪切文本的行为相同,但不能用键盘聚焦或自由插入文本。
在我的GTK3应用程序中,我已经在一些小部件上错误地将“can-聚焦”属性设置为"False“,在我的模板中(使用glade),并且当移植到GTK4时,它们似乎造成了问题。起初,我不认为“能聚焦”属性可能是问题所在,因为我的GtkEntry将其设置为真,问题是它的一个父容器的值设置为FALSE。
希望这也是你的问题,如果这不是希望这是一个其他人的解决方案。
发布于 2013-03-15 22:25:00
[gtk_widget_grab_focus]使小部件具有其内部的GtkWindow的键盘焦点。widget必须是一个可聚焦的小部件,如GtkEntry;类似于GtkFrame的东西不能工作。 更准确地说,它必须设置GTK_CAN_FOCUS标志。使用gtk_widget_set_can_focus()修改该标志。 小部件还需要实现和映射。这是由相关信号所指示的。在创建小部件后立即抓住焦点,很可能会失败,并引发关键警告,。
有关实现和地图的说明,请查看“。
https://stackoverflow.com/questions/15399880
复制相似问题