问题描述
我想在Gtk.Popover
的光标位置显示一个Gtk.Entry
。我只能添加相对于条目本身的弹出框,但是Gtk.Popover
每次都出现在Gtk.Entry
的中心。
有没有办法获取我的Gtk.Entry
光标的位置并在该位置创建弹出框?
解决方法
您应该使用Gtk.Popover.relative_to
来设置弹出框所相对的窗口小部件;那么您可以使用Gtk.Popover.pointing_to
和带有光标位置的矩形。为此,请使用Gtk.Entry.cursor_position
来检索光标的字符索引,并将其转换为Gtk.Entry
小部件的Pango.Layout中的位置;如果允许滚动该条目,则还应该获取Gtk.Entry.scroll_offset
并将其从Pango返回的坐标中减去。