将行号转换为其对应的坐标
我有一个用 PyGtk 编写的应用程序。我需要将特定的行号转换为 GtkTextView 中相应的窗口坐标。这怎么能做到呢?
I have a application written in PyGtk. I need to convert a particular line number into its corresponding window co-ordinates in a GtkTextView. How can this be done?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先使用
gtk_text_buffer_get_iter_at_line()
获取线路句柄。然后使用gtk_text_view_get_line_yrange ()
将其转换为像素坐标。最后使用gtk_text_view_buffer_to_window_coords()
将缓冲区像素坐标转换为窗口坐标。这些是 C API 调用的链接,但转换为 PyGtk 应该很简单。
Begin by using
gtk_text_buffer_get_iter_at_line()
to get a handle on the line. Then usegtk_text_view_get_line_yrange()
to convert that into pixel coordinates. Finally usegtk_text_view_buffer_to_window_coords()
to convert the buffer pixel coordinates into window coordinates.These are links to the C API calls, but converting to PyGtk should be trivial.
一般情况下是做不到的。如果您正在谈论 pygtk 程序的一行,那么您的 IDE(开发环境)需要一个 API 来找出当前在屏幕上显示的特定源代码行(如果有)。如果“行号”指的是其他内容,那么正如伊格纳西奥所说,您将需要提供更多详细信息。
It can't be done, in general. If you're talking about a line of your pygtk program, then you would need an API for your IDE (development environment) to find out where a particular source code line is currently displayed on the screen, if anywhere. If by "line number" you mean something else, then as Ignacio says, you'll need to provide a lot more detail.