问题标签 [gtkmm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3470 浏览

c++ - glibmm 超时信号

我正在使用 gtkmm 为较小的应用程序开发插件。我正在研究的插件每分钟检查某些条件(日期已更改,新的一天开始),并在条件为真时启动一些操作。在插件的初始化部分,我有以下使用 Glib::SignalTimeout 和 sigc++ 的代码:

其中 testCounter 是在包含初始化方法的类中定义的属性,CHECK_INTERVAL 是等于 1 分钟的常数。存在的所有其他变量都在包含初始化代码和回调方法的类中定义。checkNewDay 方法是测试条件并在日期发生变化时采取的措施:

在我使用实际操作之前,我放置了上面介绍的小测试代码,以测试是否一切顺利,并且每分钟调用 checkNewDay 的次数不超过一次。我的发现让我感到困惑。每分钟过去后,我会在标准输出上打印出一些让说 10 条消息(至少),但变量每分钟只增加一次。

****** 剪断 ****

每分钟左右检查新的一天

递增前

1 分钟过去了

每分钟左右检查新的一天

递增前

1分钟过去了

****剪断****

每分钟左右检查新的一天

递增前

2 分钟过去了

每分钟左右检查新的一天

递增前

2 分钟过去了

****剪断******

它的行为就像文本被发送到 10 个(左右)不同的缓冲区并在每分钟后一次打印出来。有人可以启发我并帮助我理解为什么会发生这种情况,因为我很确定回调每分钟只调用一次。谢谢!

0 投票
2 回答
1056 浏览

multithreading - 如何从外部函数更新 Gtk::TreeModel::Row

目前我正在开发一个多线程应用程序。我使用 TreeView 来显示每个线程的状态,每个线程一行。主要有两类:

  1. 包含 TreeView 的主 GUI 类
  2. 线程处理类

将 Gtk::TreeModel::iterator 作为参数传递给第二个类是不可行的,因为我们无法以 row[m_Columns.m_id] 等格式访问 row 中的元素。使用 Glib::Dispatcher 也是不可用的,因为我们在外部函数中更改的元素是线程特定的。

那么,有没有什么实用的方法可以从外部函数更新 GUI?

0 投票
1 回答
419 浏览

c++ - 调用 Gtkmm textBuffer->insert 时出现段错误

我只是在学习 gtkmm for c++。我无法获得一个简单的 TextBuffer 来添加新的文本行。我有一个名为 OutputBox 的类,它是一个带有 TextViewer(称为消息)和 TextBuffer(称为 textBuffer)的 HBox。

这是 OutputBox 类的一小部分:

现在我希望当我将一个字符串传递给 addText 时,新字符串将被添加到缓冲区中,但是我得到了一个 seg 错误。

通过 gdb 运行它后,我看到错误来自这里的 gtkmm 库:

我也不确定这在告诉我什么。我假设我错误地使用了这个类。

0 投票
2 回答
7886 浏览

image-processing - 如何在 Gtk+/Gtkmm 中显示 OpenCV IplImage?

我有图像作为 IplImage,我想在一个小型 Gtkmm 应用程序中显示。如何将它们转换为 Gtk 可以显示的东西?

0 投票
1 回答
260 浏览

gtk - fink 没有列出 gtkmm2.4

我正在尝试开始使用 gtkmm,并且我正在使用 mac。所以我尝试使用 fink 来安装它。在网上看,好像是最新的,但是当我在命令行上查看时

它只列出 gtkmm2。我继续尝试,但它确实是 gtkmm 2.0 发行版。我真的很想了解最新情况,更不用说 hello world 示例失败了,我认为这是因为我没有使用 2.4。

如何让 fink 找到并安装 gtkmm 2.4?我试图确保一切都是最新的,但没有运气fink selfupdateapt-get update

0 投票
2 回答
2639 浏览

c++ - Gtkmm - “Gtk::ScrolledWindow”中的“Gtk::DrawingArea”?

我正在使用“gtkmm”制作一个 GUI 程序。我想为“Gtk::DrawingArea”小部件绘制一些图形,但我希望该小部件可以“调整大小”,所以当我绘制时,假设一条从“(0, 0)”到“(50, 50)”的线" 像素 - 绘图区域应调整为大小为 "(50, 50)" 的正方形;例如,当我从“(0, 0)”画一条线到“(100, 70)”像素时 - 绘图区域应调整为大小为“(100, 70)”的矩形。

为此,我将“Gtk::DrawingArea”小部件放入“Gtk::ScrolledWindow”容器中。

所以当我把一张大小为“(100, 100)”的图片放到绘图区时——>我会调用相应的成员函数“Gtk::DrawingArea::set___size_request(100, 100)”,它会设置图片的大小绘图区域为 (100, 100) 像素。因此,如果“Gtk::ScrolledWindow”比其中的“Gtk::DrawingArea”“小”,则滚动窗口应更改为“可滚动” - 但问题是,它不起作用!!!!!!!

那么有人能解释一下我该怎么做吗?

谢谢。

0 投票
2 回答
276 浏览

gtkmm - 如何使用 Gtkmm 画一棵树?

我想画一棵树,来可视化这个抽象的数据结构。

是否有任何现有的图书馆可供我这样做?我不想手动编写开罗代码......

0 投票
2 回答
1328 浏览

c++ - 从整数数组以 gtkmm 显示图像

我有一个带有灰度图像的整数数组,我需要在我的应用程序中显示它。我正在使用 gtkmm 在 C++ 中编程,但我找不到任何像画布这样的小部件,可以让您显示和访问图像中的每个像素。

0 投票
4 回答
3456 浏览

linux - 在 Linux 上为 gtkmm 和交叉编译设置 OpenGL

我开始学习 OpenGL,但我不确定如何在 (Ubuntu) Linux 上进行设置。

我认为这可能是一种方式:

OpenGL 只是一种图形语言规范(或接口),要正确使用它,我必须下载一些实现OpenGL 规范的库(针对特定操作系统)。

经过长时间的搜索和多个来源,我发现 Mesa 3D 图形库对我来说是最好的。

我还找到了 SDL(简单 DirectMedia 层)库,但它似乎是除图形之外的所有其他东西(例如 GUI、声音、键盘和鼠标输入……)的库。我只需要一个图形库,这样它就可以实现 OpenGL 规范。

作为一个图形用户界面,我使用 Gtkmm 库,到目前为止我对它“非常满意”,所以我想将 gtkmm 与 OpenGL “连接”——为此我找到了一个 gtkmm 库的扩展gtkglextmm,我应该使用它来调用它能够DrawingArea在 GUI 中将 OpenGL 动画绘制到窗口(或用 Gtkmm 术语)(但我还没有尝试过,所以我希望它能工作:-))。

最后一个问题是从 Linux 到 Windows 的交叉编译(使用 MinGW 交叉编译器)。到目前为止,我已经成功地交叉编译(从 Linux 到 Windows)我使用 Gtkmm 库完成的所有工作。

当我将它与 OpenGL 结合使用时,交叉编译它不会有任何问题吗(例如,在使用 Gcc 编译器编译时我是否需要链接一些特殊的东西,或者我应该在我的应用程序中分发一些 Windows OpenGL 库)?

如果您确认我的方向是正确的,或者让我朝着正确的方向前进,我可以做一些更简单或更好的事情,我会非常高兴。

0 投票
1 回答
3373 浏览

opengl - OpenGL + gtkglextmm + 林间空地

当我用“gtkmm”编程时,有一个小部件“Gtk::DrawingArea”
我可以“手动”编程该小部件(所以编写代码)或更优雅的方式是使用“glade”用户界面设计器,我可以在其中“以图形方式”做同样的事情。

现在我正在尝试通过“gtkglextmm”库将 OpenGL 与 gtkmm 连接起来。在那个库中,有一个小部件“Gtk::GL::DrawingArea” - 但这个小部件“不”在林间空地可用。

那么有没有办法使用“glade”(对于“图形用户界面”部分)使用“OpenGL + gtkglextmm”进行编程?

谢谢。