c - 如何在事件(单击)时清除输入框

标签 c linux gtk3

<分区>

我想清除我的输入框,以便当我想再次输入内容时它是清楚的。 我实现了一个简单的 Webbrowser。 在入口框中始终是 url,但我一直在寻找的是,如果我单击(激活)入口框,则应清除入口框。

我希望我能做这样的事情:

if(gtk_window_get_focus(GTK_WINDOW(w->window)) == w->entry)
          gtk_entry_set_text (GTK_ENTRY(w->entry), "");

但我真的不知道在哪里做,也不知道它是如何检测到输入框被点击的。

最佳答案

有几种方法,但在我们开始之前:用户可能想要复制 URL,在点击事件时清除它可能会造成混淆。

  1. 连接到父类“grab-focus”信号
  2. 使用 gtk_entry_set_placeholder_text 使文本成为占位符(显示为略带阴影)
  3. 按照上面的说明:设置一个辅助图标(gtk_entry_set_icon_from_icon_name,图标“edit-clear-symbolic”)并连接到“icon_press”信号。

关于c - 如何在事件(单击)时清除输入框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56550448/

相关文章:

c - GTK 扩展器一次一个

python - 如何使用 Python 在 Gtk3 中显示 png 图像?

c - 为什么矩阵(二维数组)在打印时没有正确显示

linux - 在 openwrt 中降级 Linux 内核版本会引发构建错误

objective-c - Objective C 中 struct ivar 的奇怪内存行为

linux - 更改所有权期间参数无效

java - 无法声明接口(interface) : Resource busy

gtk - 我可以用什么代替 gtk_container_set_focus_chain()?

C - 在运行时创建一个大小大于 10M 的数组

c - C 中的链表 - void 问题