首页 > 解决方案 > 在 Gtk.Entry 的光标处显示 Gtk.Popover

问题描述

我想在 aGtk.Popover的光标位置显示 a Gtk.Entry。我只能添加相对于条目本身的弹出框,但它Gtk.Popover出现在Gtk.Entry每次的中心。

有没有办法获得Gtk.Entry光标的位置并在该位置创建弹出框?

标签: cgtkvala

解决方案


您应该使用Gtk.Popover.relative_to;设置弹出框相对于的小部件 然后你可以使用Gtk.Popover.pointing_to和 带有光标位置的矩形。为此,请使用Gtk.Entry.cursor_position以字符为单位检索光标的索引,并将其转换为Gtk.Entry小部件 Pango.Layout 中的位置;如果条目允许滚动,您还应该Gtk.Entry.scroll_offset从 Pango 返回的坐标中获取并减去它。


推荐阅读