如何(以编程方式)滚动到 gtktextview/gtksourceview 中的特定行

2024-06-18

我正在创建一个文本编辑器,作为更加熟悉 C 和 gtk+ 的一种方式。我正在使用 gtk+-2.0 和 gtksourceview-2.0 和 gtk_scrolled_window 。作为创建 goto 函数浏览器的第一次尝试,我想我只需创建文档中找到的函数数组以及它们出现的相应行数组。我已经做了这么多了。我惊讶地发现在 devhelp 中没有可以轻松找到的 goto line 功能。听起来 gtk_text_view_scroll_to_mark () 是我想要的(创建标记后),但所有 *scroll_to 函数都需要一个 inside_margin,说实话我不太明白:

来自开发帮助:

出于此功能的目的,有效屏幕会减少一个尺寸为 inside_margin 的边距。

这意味着什么?

我还接近吗?如何创建此滚动到行号功能?

Thanks.

UPDATE:以下三个函数用于滚动到缓冲区中的一行:

gtk_text_iter_set_line (&start, lineNums[9]);
gtk_text_buffer_add_mark (tbuffer, scroll2mark, &start);  
gtk_text_view_scroll_to_mark (text_view, scroll2mark, 0.0, TRUE, 0.0, 0.17);

gtk_text_view_scroll_to_mark 的最后一个参数用于获取与缓冲区中最上面的行对齐的目标行号。我想这个参数不适用于所有屏幕尺寸,但我还没有测试过。

gtk_text_view_scroll_mark_onscreen 函数让我接近行号,但它距离文本区域底部只有几行。


inside_margin 参数控制滚动到的文本应出现的屏幕区域,或更准确地说,它设置不应出现文本的屏幕边框的空间量。

存在这一点是为了当您将 use_align 设置为 false(即您不希望文本出现在屏幕上的特定位置)时,您仍然可以确保文本不会直接出现在屏幕的顶部或底部屏幕(这可能不利于可读性)。

如果您根本不关心文本出现的位置,您可以使用g_text_view_scroll_mark_on_screen它只接受文本视图和一个标记,没有进一步的参数。这将始终滚动最小量以使文本出现在屏幕上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何(以编程方式)滚动到 gtktextview/gtksourceview 中的特定行 的相关文章

  • Boost 错误代码参考

    有谁知道在哪里可以找到升压错误代码的参考 特别是 异步套接字处理程序返回的错误代码 Google 和 grep 头文件已调为空 我从 Linux 上的 asio error hpp 中提取了错误值 顺便说一句 我仅使用标头 asio 而不是
  • 插入多重集中:在该值第一次出现之前而不是最后一次出现之后

    正如标题所示 multiset 在所有相同值的范围末尾插入一个值 例如 在多重集中插入 21 2 2 3做到了1 2 2 new 2 3 如何在所有相同值的范围开头插入新值 例如 在多重集中插入 21 2 2 3应该使1 new 2 2 2
  • 在 ASP.NET Core 中全局重用变量

    我必须强制这些变量在我想使用的每个变量上重用 这让我很困难 我需要创建一个类来定义这些变量并在整个程序中使用它们 我怎样才能做到这一点 string RootFolderName Uplaod string ProductPictureFo
  • 是否有任何替代方法来实现 WebRTC SFU,只有 1 个上传流?

    我有一个服务器 能够将 WebRTC 媒体数据从 A 中继到 B 对于视频会议 如果我们采用 P2P 方法 则会创建一个网状网络 当P2P不起作用的时候 我们就可以拥有这个中继服务器 主要问题是在网状网络中 对于N个参与者来说 上传链路的数
  • 如何防止函数中的隐式转换?

    我正在编写一个实用程序类 其中包含 IsEquals 和 IsGreaterThanEquals 等接受 double 类型参数的方法 当我将浮点值发送到方法时 它们会隐式转换为双精度值并进行比较 我不希望这种事发生 当我发送 float
  • 委托 System.Action 不接受 1 个参数

    那个行动 readonly Action execute public RelayCommand Action execute this execute null public RelayCommand Action execute Fun
  • 使用 C 序列化 double 和 float

    如何在 C 中序列化双精度数和浮点数 我有以下用于序列化短整型 整数和字符的代码 unsigned char serialize char unsigned char buffer char value buffer 0 value ret
  • 带有成员 (operator[]) 函数的 invoke_result

    如何为成员函数正确调用invoke result 或者专门用于运算符成员函数 我试过std invoke result
  • 从 pdf 和 word 文件中提取文本

    如何在 C 中从 pdf 或 word 文件中提取文本 删除粗体 图像和其他富文本格式媒体 您可以使用专为索引服务设计 由索引服务使用的过滤器 它们旨在从各种文档中提取纯文本 这对于在文档内部进行搜索非常有用 您可以将其用于 Office
  • 值类型数组如何存储在 .NET 对象堆中?

    在 NET中 诸如int之类的值类型对象存储在内存中 引用类型对象需要为引用和对象单独分配内存 并且对象存储在 NET对象堆中 而Array是在堆中创建的 那么int 等值类型的数组如何存储在堆中呢 这是否意味着值类型对象可以存储在堆中而无
  • 使用 rhino 模拟进行 lambda 单元测试失败

    如果我有这个测试 Expect Call session Single
  • ofstream::operator<<(streambuf) 是一种复制文件的缓慢方法

    我需要一种跨平台 无需外部库的复制文件的方式 在我的第一遍中 我想出了 省略错误处理 char buffer LEN ifstream src srcFile ios in ios binary ofstream dest destFile
  • 在 Visual Studio 2017 mac 上安装扩展 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试在 Visual Studio for Mac 上安装 Visual Studio Marketplace 扩展 但是 Vi
  • 作为服务运行时,URLDownloadToFile() 将对象写入缓存中

    我有一个软件 可以将图像下载到工作目录中 然后对其进行处理以创建视频 之后 这些文件将被独立脚本删除 问题是它还将文件写入以下目录 该软件作为系统服务运行 C Windows SysWOW64 config systemprofile Ap
  • 访问控制器类中的 appsettings.json 值

    无法弄清楚如何读取startup cs之外的appsettings json值 例如 我想做的是在 Layout cshtml 中 从配置中添加站点名称 例如 ViewData SiteName Configuration GetValue
  • 在方法签名中使用 new 关键字通常只是为了可读性吗?

    我读过关于new关键词在方法签名中并看到了下面的例子this https stackoverflow com questions 1014295 c sharp new keyword in method signature发帖了 但还是不
  • 对数据绑定组合框进行排序的最佳方法是什么?

    我对此做了一些研究 似乎对数据绑定组合框进行排序的唯一方法是对数据源本身进行排序 在本例中为数据集中的数据表 如果是这种情况 那么问题就变成对数据表进行排序的最佳方法是什么 组合框绑定在设计器中设置初始化使用 myCombo DataSou
  • TPL架构问题

    我目前正在开展一个项目 我们面临并行处理项目的挑战 到目前为止没什么大不了的 现在来说说问题 我们有一个 ID 列表 我们定期 每 2 秒 为每个 ID 调用一个 StoredProcedure 需要单独检查每个项目的 2 秒 因为它们是在
  • 类型与创建 CLR 存储过程不匹配

    我在程序集中有一个如下所示的方法 namespace MyNameSpace public class MyClass Microsoft SqlServer Server SqlProcedure public static void M
  • 系统.安全.加密与 PCLCrypto

    我们正在删除系统中的许多共享功能并将其移植到 PCL 库中 我在使用 PCLCrypto 时遇到问题 我正在获取数据库中的一些现有数据 并尝试使用相同的算法对其进行解密 我得到了值 但末尾有 16 个额外字节 这些字节都是垃圾 参见下面的代

随机推荐

  • 在numpy中,[:,None]选择有什么作用?

    我正在学习 Udacity 的深度学习课程 我遇到了以下代码 def reformat dataset labels dataset dataset reshape 1 image size image size astype np flo
  • 未捕获类型错误:path.split 不是反应中的函数

    我正在尝试在反应中对我的表单进行验证 我选择了 react hook form 库 但我不断收到错误 Path split 不是函数 即使使用其网站中给出的默认示例后 我也收到相同的错误 这是官方网站中给出的默认代码 import Reac
  • Firebase Android:电子邮件链接身份验证。意图过滤器不起作用

    我正在为 Android 实现 firebase 电子邮件链接身份验证机制 我已经使用 firebase 指南实现了它 但现在打开电子邮件中的链接后 应用程序始终会进入启动器活动 我无法调试该问题 我还在我的应用程序中实现了动态链接 效果很
  • 状态栏与工具栏重叠

    我有一个已基本完成的应用程序 它在视图顶部使用一个带有几个按钮的工具栏 在这下面是一个WebView 它只打开一个URL 并且没有办法离开这个站点 这就是重点 但是 状态栏与工具栏重叠 我最初的临时解决方案是隐藏状态栏 但我确实需要它出现在
  • 如何在 Shopify 中调整此设置以隐藏不可用的变体?

    假设我们有衬衫产品 变体是款式 尺寸 Men L Men XXL Men XL 女士 小号 女式 XL Women L 现在 在默认的 Shopify 中 无论您选择什么款式 您仍然可以选择任何尺寸 即使该尺寸不适用于该款式 如何根据您的风
  • 如何选择单选按钮?

    我在用mechanize我正在尝试从单选按钮列表中选择一个按钮 该列表有 5 项 如何选择第一项 文档没有帮助我 gt gt gt br form
  • 如何将纹理传递给 DirectX 9 像素着色器?

    我有像素着色器 fxc exe tiles fs T ps 3 0 Fotiles fsc Fctiles fsl struct PSInput float4 Pos TEXCOORD0 float3 Normal TEXCOORD1 fl
  • SignalR 在子域上协商 404

    我创建了一个小型 MVC SignalR 应用程序 但在子域下的服务器上运行时遇到问题 http chat mydomain com http chat mydomain com 它映射到名为 chat 的文件夹 我还使用 SignalR
  • date_sub 对于 mysql 可以,对于 postgresql 可以

    此查询适用于 mySQL 不适用于 Postgresql select from where id and h gt date sub now INTERVAL 30 MINUTE 错误是 Query failed ERREUR erreu
  • IE8 post 文件定位 iframe,到达服务器时为空

    我有一个表格 只有一个input file在其中 表单的目标是一个命名的iframe 当用户选择一个文件时 它会自动将表单发送到服务器 这适用于 IE10 firefox chrome 但在 IE8 中 当 IE8 发布表单时 我的控制器方
  • 如何将 Jupyter Notebook 的代码片段与 VSCode 结合使用?

    我已经使用 VSCode 一段时间了 目前我正在尝试设置代码片段来工作 它们似乎适用于简单的 Python py 文件 但不适用于 Jupyter Notebook ipynb 文件 有什么办法可以让他们一起工作吗 片段就在这里 Creat
  • 尝试运行我的 Espresso 测试时 RecyclerViewMatcher 中出现 NullPointerException

    我想跑Espresso Testing on my Android project 第 1 步 找到我的RecyclerView 第 2 步 检查上的项目RecyclerView 第一步成功运行 但第二步应该检查recycler view项
  • R:大向量的高效迭代子集和过滤

    我想更快地执行以下操作 Logic 我有一个向量big共 4 个元素1 2 3 4 我还有一个相同长度的阈值向量1 1 3 1 4 1 5 1 我希望每个元素找到第一个元素的索引next元素高于相应的阈值 在这种情况下 我的预期输出是 2
  • 使用 TFS REST API 获取 Git 提交的最新关联工作项

    我正在尝试获取关联的工作项使用 TFS REST API 进行 GIT 提交 https www visualstudio com en us docs integrate api git commits 我的请求 URL 如下所示 htt
  • ARC 禁止合成未指定所有权或存储的财产

    我创建了一个 property of UIColor property nonatomic UIColor color 然后我尝试合成它 synthesize color color 但我收到一个错误 ARC 禁止合成具有未指定所有权或存储
  • 实体框架 - 相关的 ICollection 被具体化为 HashSet

    我在我的项目中使用实体框架 POCO 代理 延迟加载 今天我很惊讶地看到这个班级Transaction有其相关合集Rows物化为HashSet 代替EntityCollection 我需要EntityCollection用于跟踪集合中的更改
  • 具有订阅者缓存的 WCF Pub/Sub

    Problem 如何使用 WCF 提供分布式 可扩展且具有抗灾能力的发布 订阅服务 Details 请注意 除了 Tibco EMS 等消息传递 中间件解决方案之外 我们还在考虑这种方法 我一直在研究 WCF 特别是如何使用它来提供发布 订
  • Matplotlib imshow:如何在矩阵上应用蒙版

    我正在尝试以图形方式分析二维数据 matplotlib imshow在这方面非常有用 但我觉得如果我可以从矩阵中排除一些单元格 超出感兴趣范围的值 我可以更多地利用它 我的问题是这些值使我感兴趣的范围内的色彩图 变平 排除这些值后 我可以获
  • System.IndexOutOfRangeException:索引超出范围

    我有一个 C 程序 在 Visual Studio 中运行时运行良好 但是当我运行该文件时 我在 main c 中收到错误 错误是 未处理的异常 System IndexOutOfRangeException 索引超出数组范围 我的主要 错
  • 如何(以编程方式)滚动到 gtktextview/gtksourceview 中的特定行

    我正在创建一个文本编辑器 作为更加熟悉 C 和 gtk 的一种方式 我正在使用 gtk 2 0 和 gtksourceview 2 0 和 gtk scrolled window 作为创建 goto 函数浏览器的第一次尝试 我想我只需创建文