c++ - 如何在 GtkEntry 中设置文本可编辑

标签 c++ gtk gnome gtk2

非常直接的问题,我有一个 GtkEntry 小部件,我想将其设置为可编辑。我知道我应该使用的功能是:

gtk_editable_set_editable

但我不知道如何让它以 GtkEntry 小部件作为参数

这是我使用的代码:

GtkWidget *TextEntry;
TextEntry = gtk_entry_new();

gtk_entry_set_visibility(GTK_ENTRY(TextEntry), TRUE);
gtk_entry_set_editable(GTK_ENTRY(TextEntry), TRUE);
gtk_entry_set_overwrite_mode(GTK_ENTRY(TextEntry), TRUE);
gtk_widget_set_can_focus(GTK_WIDGET(TextEntry), TRUE);
gtk_widget_grab_focus(TextEntry);

panel_applet_request_focus(applet, 10);
gtk_container_add (GTK_CONTAINER (applet), TextEntry);

gtk_widget_show_all (GTK_WIDGET (applet));

就获得键盘焦点而言,我认为我需要 panel_applet_request_focus () 函数。它要求我将有问题的小程序和触发窗口焦点的事件的时间戳传递给它

我不确定要为时间戳输入什么。我编译了上面的代码,点击小程序还是得不到键盘焦点。

最佳答案

执行以下操作:

GtkWidget* entry = gtk_entry_new();
gtk_entry_set_editable(GTK_ENTRY(entry), TRUE);

欢迎来到 GObject 的世界 :)

请注意,如果您使用的是 gtk_editable,则需要执行以下操作:

gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE);

关于c++ - 如何在 GtkEntry 中设置文本可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720989/

相关文章:

c - 如何将 GtkWidgets 发送到后面或前面?

c++ - 在 Gnome 或 KDE 中以编程方式在桌面上移动应用程序窗口

gnome - 禁用 Gnome 经典桌面热点

c++ - 在自己的 C++ 项目中使用 Simulink 生成的 C/C++ 代码

c++ - 编译错误 : Windows API headers. ...损坏?

使用 alpha-beta 剪枝的 C++ 检查器

c++ - 是否允许将指向模板函数的指针传递给 C 库? (作为回调)

c - GTK - 等待事件发生以继续运行后续代码

click - Vala 图片点击事件。如何获得点击的协调?

blogs - GTK+ 3.0 和 GNOME 3 编程!有任何博客、书籍或教程吗?