gpt4 book ai didi

c - 我怎样才能捕获在 GTK 中进行右键单击的单词?

转载 作者:太空宇宙 更新时间:2023-11-04 07:20:57 28 4
gpt4 key购买 nike

我有一个 GtkTextView 小部件,我想在用户右键单击某个词时显示自定义弹出菜单。为了显示适当的菜单,我需要知道那个位置是什么词。

喜欢以下内容: enter image description here

我正在阅读文档,但我还没有找到方法。

有人知道怎么做吗?

最佳答案

我通过将来自 GtkTextViewbutton-press-event 信号连接到创建菜单的函数来让它工作

g_signal_connect(text_view, "button-press-event", G_CALLBACK(right_click_menu), NULL);

当事件不是由预期的按钮(右键单击)生成时,处理菜单创建的函数将忽略该事件

if(event->button.button != 3)
return FALSE;

得到这个词只是调用 gtk_text_view_window_to_buffer_coords 的问题,坐标是通过 GdkEvent 传入的

int x, y;
gtk_text_view_window_to_buffer_coords( GTK_TEXT_VIEW(text_view),
GTK_TEXT_WINDOW_WIDGET,
event->button.x,
event->button.y,
&x,
&y );

并用

请求一个迭代器
GtkTextIter iter;
gtk_text_view_get_iter_at_location(GTK_TEXT_VIEW(text_view), &iter, x, y);

然后使用 GtkTextIter 函数 ( https://developer.gnome.org/gtk3/stable/GtkTextIter.html ) 来确定单词边界。

关于c - 我怎样才能捕获在 GTK 中进行右键单击的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21689670/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com