从 gtk 树视图的选定行获取数据 - gtkmm,c++

2023-12-05

我有一个 GTK 应用程序,它的窗口带有treeview和一个按钮。单击按钮时,我需要从所选行的第一列(也是唯一一列)获取数据treeview.

这是列的类:

class ModelColumns: 
public Gtk::TreeModel::ColumnRecord{
    public:

    ModelColumns(){ add(m_port_name); }

    Gtk::TreeModelColumn<Glib::ustring> m_port_name;
};

这与此处的示例类似,但只有一列:http://www.lugod.org/presentations/gtkmm/treeview.html

这是目前的按钮点击信号处理程序:

tvPorts is the treeview widget

tvPortsList is the listStore为了treeview

static
void on_btnPortSelectOK_clicked (){
    Glib::RefPtr<Gtk::TreeSelection> selection = tvPorts->get_selection();
    Gtk::TreeModel::iterator selectedRow = selection->get_selected();
    //Now what?
    //Need to get data from selected row to display it.
}

我搜索了文档和许多示例来尝试找出下一步该做什么,但找不到 gtkmm 的任何示例,我只能找到 c 或 python 实现的示例。

据我所知,我需要得到一个TreeRow来自我的对象iterator (selectedRow) 我该怎么做呢?

Thanks.


Update:

我现在正在使用这段代码,它几乎可以工作。 唯一的问题是它打印了之前的选择。 第一次我选择某些内容然后按下按钮时,它只打印一个新行。第二次打印第一次选择的内容,第三次打印第二次选择的内容,依此类推。

Glib::RefPtr<Gtk::TreeSelection> selection = tvPorts->get_selection();
Gtk::TreeModel::iterator selectedRow = selection->get_selected();
Gtk::TreeModel::Row row = *selectedRow;
Glib::ustring port = row.get_value(m_Columns.m_port_name);
printf("\nselected port: %s", port.data());

这看起来很奇怪。 (m_Columns是一个实例ModelColumns class)


更新2:

通过添加解决了问题fflush(stdout);现在一切正常了,谢谢。


The docs说简单地取消引用 iter 来获取 TreeRow:

Gtk::TreeModel::Row row = *iter;   // 'iter' being your 'selectedRow'
std::cout<<row[0]; 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 gtk 树视图的选定行获取数据 - gtkmm,c++ 的相关文章

  • 高级 Win32 图像文件 I/O?

    我想在 Windows C 应用程序中将图像文件读入内存 什么是一个相当简单的解决方案 也许类似于 IOS 提供的UIImage 我希望支持合理数量的文件格式 我需要为图像处理的位图提供一些低级访问权限 我在互联网上阅读了很多内容 看起来
  • 从 SQL 数据库获取日期时间

    我的数据库表中有一个 DateTime 记录 我编写一个查询从数据库中获取它 string command2 select Last Modified from Company Data where Company Name Descrip
  • 将 2D 数组映射到 1D 数组

    我想用一维数组来表示一个二维数组 函数将传递两个索引 x y 和要存储的值 这两个索引代表一维数组的单个元素 并相应地设置它 我知道一维数组需要具有 arrayWidth arrayHeight 的大小 但我不知道如何设置每个元素 例如 如
  • 处理 LINQ sum 表达式中的 null

    我正在使用 LINQ 查询来查找列的总和 并且在少数情况下该值有可能为空 我现在使用的查询是 int score dbContext domainmaps Where p gt p SchoolId schoolid Sum v gt v
  • boost线程在中断时不打印退出消息

    我有这段代码用于执行三个线程 其中第二个线程应在按 Enter 时中断并打印退出消息 void input val DO STUFF return void process val DO STUFF try cout lt lt waiti
  • 实体框架代码优先 - 在另一个文件中配置

    使用 Fluent API 将表到实体的映射分开的最佳方法是什么 以便它全部位于单独的类中 而不是内联在 OnModelCreating 方法中 我目前在做什么 public class FooContext DbContext prote
  • 为什么C Clock()返回0

    我有这样的事情 clock t start end start clock something else end clock printf nClock cycles are d d n start end 我总是得到输出 时钟周期是 0
  • .NET 可移植类库中的 .ToShortDateString 发生了什么

    我想知道为什么没有 ToShortDateString在 NET 可移植类库中 我有 2 个项目 Silverlight 和常规 NET 类库 使用相同的代码 并且代码涉及调用 ToShortDateString on a DateTime
  • __FUNCTION__ 宏的 C# 版本

    有人对 C FUNCTION 宏的 C 版本有好的解决方案吗 编译器似乎不喜欢它 尝试使用这个代替 System Reflection MethodBase GetCurrentMethod Name C 没有 LINE or FUNCTI
  • 阅读 Stack Overflow RSS 源

    我正在尝试获取未回答问题的列表the feed https stackoverflow com feeds 但我在阅读时遇到困难 const string RECENT QUESTIONS https stackoverflow com f
  • 控制台应用程序 .net Core 2.0 的配置

    在 net Core 1 中我们可以这样做 IConfiguration config new ConfigurationBuilder AddJsonFile appsettings json true true Build 这样就可以使
  • 防止复制构造和返回值引用的分配

    如果我有一个函数返回对类实例的引用 但我无法控制其源 比如说list
  • CMake - 将预构建库链接到 C# 项目

    我正在使用 CMake 构建 C 库 该库依赖于已构建的库 dll 我似乎无法让图书馆链接到我的图书馆 我尝试过使用target link libraries mylib external lib 我也尝试过暴力破解 reference e
  • for 循环 - 没有效果的语句

    由于某种原因 我收到错误 statement with no effect关于这个声明 for j idx j lt iter j increment printf from loop idx i int idx punc ctxt j 你
  • 当格式字符串包含“{”时,String.Format 异常

    我正在使用 VSTS 2008 C Net 2 0 执行以下语句时 String Format 语句抛出 FormatException 有什么想法是错误的吗 这是获取我正在使用的 template html 的位置 我想在 templat
  • 抽象类和接口之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 接口与基类 https stackoverflow com questions 56867 interface vs base class 我不明白抽象类和接口之间的区别 我什么时候需要使用哪种字体
  • 编写专门用于类及其子类的函数模板

    我正在尝试编写一个函数模板 一个版本应该用于不满足另一版本标准的所有类型 当参数是给定类的基类或该类本身时 应使用另一个版本 我尝试过超载Base 但是当类派生自Base 他们使用通用的 而不是特定的 我也尝试过这种 SFINAE 方法 s
  • 如何使用 g++ 在 c++ 20 中使用模块?

    我读了这个链接https gcc gnu org wiki cxx modules https gcc gnu org wiki cxx modules并尝试从该网站复制以下示例 我已经知道这个编译器部分支持模块系统 注 我用的是windo
  • Windows 上 libcurl 的静态库[重复]

    这个问题在这里已经有答案了 如何将此库 libcurl 静态链接到 exe 我努力了 disable share enable static 没有帮助 我使用的是MingW32 有没有一种简单的方法来静态链接这个库 这样我的应用程序就不再有
  • 在 C# 中读取/写入命令行程序

    我正在尝试与 C 的命令行程序进行对话 它是一个情绪分析器 它的工作原理如下 CMD gt java jar analyser jar gt Starting analyser 这是我想从我的 C 程序插入内容的地方 例如 I love y

随机推荐

  • 如何将选择选项值和文本存储在 JSON 对象或数组中?

    我有一个选择列表 示例如下 我想将此选择列表 文本和值 存储在 JSON 对象或数组对象中 这样我以后就可以使用 each 函数来完成它 然后我想根据用户输入显示 隐藏选择选项列表中的记录 所有代码都已准备就绪并可以工作 只是我无法弄清楚如
  • Java 中表达式“new String(...)”的用途是什么?

    在查看在线代码示例时 我有时会遇到通过使用 new 运算符将 String 常量分配给 String 对象的情况 例如 String s s new String Hello World 当然 这与 s Hello World 我不熟悉这种
  • 不同线程中的 Hibernate 断言失败

    我通过一个会话连接到我的数据库 我的整个计划中总是有相同的课程 我的线程 1 从数据库捕获主要数据 必须允许用户取消该线程 因此 如果用户频繁或快速按下取消按钮 这是我的解释 则会发生以下错误 ERROR org hibernate Ass
  • 对 Fortran 多线程程序进行计时

    我有一个调用多线程例程的 Fortran 90 程序 我想从调用例程中计时该程序 如果我使用cpu time 我最终得到的是所有线程 在我的例子中是 8 个 的 cpu time 加在一起 而不是程序运行所需的实际时间 这etime 例行公
  • 如何使用 C# 读取 Microsoft Edge 历史记录

    我想访问 Microsoft Edge 的历史记录 我该怎么办 根据我的研究 我们可以通过删除 LOCALAPPDATA Packages Microsoft MicrosoftEdge 8wekyb3d8bbwe AC 文件夹中以 开头的
  • 引导 Krippendorff 的 Alpha

    我想通过引导 Krippendorff 的 Alpha 结果来计算使用 R 包 irr 的 Krippendorff 的评级者可靠性 Alpha 系数的 95 置信区间 让我们使用 irr 包中的 C data from Krippendo
  • 提供程序在 InitState 中抛出错误。 Provider.of(上下文)

    如何在 initState 中访问 Provider 的上下文 我不断收到错误消息 flutter The following assertion was thrown building Builder flutter inheritFro
  • 如何等待所有数据成功回调的多个 Promise

    我有这个 API 调用 但我没有收到我的数据successCallback按照我发送的顺序 for var i 0 i lt data length i http post api bla blabla param data i then
  • 使用 Kotlin 从相机/图库捕获图像并在 Activity/Fragment 中显示

    我知道这是一个使用java很好回答的小问题 但我确信有新的APIs让事情变得更容易 例如 val getContent registerForActivityResult GetContent uri Uri gt Handle the r
  • 是否可以为 StaticResource 动态创建 ResourceKey? (例如使用绑定)

    假设我要绑定的对象有一个带有表示 ResourceKey 的字符串的属性 如何获取 StaticResource 以基于与底层对象的绑定动态获取其 ResourceKey 我想要与此等效的东西 MyProperty StaticResour
  • 在 Material-ui v1.0.0-beta-1 中使用类覆盖会显示“未实现提供给类属性的密钥”警告

    我正在尝试使用以下方法覆盖 Material UI v1 组件的样式被类覆盖 method 当我尝试覆盖嵌套属性时 例如 hover上的伪类rootkey 我收到以下警告 Warning Material UI the key MyButt
  • div 内的按钮,不发送 div onclick - JavaScript

    我有一个 div 该 div 有一个 onclick 事件 div 内部有一些文本和一个按钮 当我单击文本时 会发送 div onclick 这很好 但是 当我单击 div 内的按钮时 按钮的 onclickanddiv 已发送 我知道这是
  • 在 Plotly 中向 3D 散点图添加注释

    我是这个领域的新手 希望得到一些帮助 我刚刚开始使用 Plotly 并使用它来构建一个非常基本的 3D 散点图 该图对一些货架以及物品所在位置进行建模 当我构建 架子 并渲染绘图时 我想在文本中添加注释 指示我正在查看哪组架子 这是我的程序
  • Ruby 中的堆栈级别太深,试图绘制随机卡

    运行下面的代码时出现错误 堆栈级别太深 如果随机选择的卡不存在 则会选择另一张随机卡 我想我应该以某种方式尝试一下代码 但我不确定如何 有什么建议么 def hit choice of card rand deck length choos
  • 重点组件参考

    我正在开发一个基于 java swing 的简单应用程序 如何获取和设置表单当前聚焦的文本字段 文本区域的文本 我知道如何确定哪个组件具有焦点 但我不知道如何获取组件的选定文本 我使用 getFocusOwner 但它返回一个组件 因此没有
  • 按对列结果查询

    目前我的数据集由 4 列组成 id status user id created date 所以一段时间后数据可以是这样的 1 LOGIN 2019 07 16 07 06 55 Bob 2 LOGOUT 2019 07 16 07 29
  • 显示网页上的幻灯片数量

    我编写了一个自定义滑块 如本代码笔所示 http codepen io anon pen NqQpjG我添加了额外的功能来计算移动的幻灯片总数 例如 如果幻灯片总数为 8 则起始值将如下所示 Slides 0 8 当一张幻灯片移动时 它会变
  • 将源代码多次传递到 cpp

    基本上 我试图将源代码两次传递给 gcc 的 cpp 然后直接传递给 gcc 的 c 编译器 至于为什么 我相信有些东西永远无法在宏中内联 这是一个例子 say i want to make an inline definition tha
  • magento后端无法登录致命错误getBlockName

    在 Magento 1 8 上运行 我正在复制到测试生产站点 但在后端我无法登录 这是错误消息 Fatal error Call to a member function getBlockName on a non object in va
  • 从 gtk 树视图的选定行获取数据 - gtkmm,c++

    我有一个 GTK 应用程序 它的窗口带有treeview和一个按钮 单击按钮时 我需要从所选行的第一列 也是唯一一列 获取数据treeview 这是列的类 class ModelColumns public Gtk TreeModel Co