找出哪个gtk小部件有当前选择

Mar*_*llo 5 gtk selection gtkentry

我有一组GtkEntry小部件,其中一些是可编辑和可聚焦的,其中一些不是.我想知道它们当前有哪些(如果有的话)选择了文本,以便实现Edit-> Copy菜单项.有没有办法做到这一点,除了迭代所有小部件,直到gtk_editable_get_selection_bounds返回true?

我目前正在通过调用来回避问题,gtk_clipboard_get(GDK_SELECTION_PRIMARY)但是根据文档的说法,这不是可移植的(并且还将在当前显示中的任何地方选择文本,而不仅仅是从我的应用程序中选择).

PAL*_*LEN 4

你有没有尝试过gtk_window_get_focus ()?用户经常与条目交互,因此它可能适合您。文档称它“检索窗口中当前聚焦的小部件”。你可以在这里自己看看。然后,比较检索到的小部件是否是您的条目之一。

一旦获得焦点条目,也许您想使用gtk_entry_get_text ()获取其文本,但是,它将获取条目中的所有文本。如果这不符合您的目的,解决方案可能是使用gtk_editable_copy_clipboard ()它将当前选定内容的内容复制到可编辑中(当然,将条目转换为可编辑)并将其放在剪贴板上。然后,如果适用,请使用gtk_editable_paste_clipboard ()粘贴复制的内容。