问题标签 [glibmm]
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.
c++ - gtkmm3 中的菜单项始终禁用
我正在尝试使用 gtkmm3 和 Application::set_menubar 方法创建一个程序。我可以创建菜单,但是当我运行程序时,菜单中的所有项目都是灰色的。我已经搜索了 glibmm 和 glib 库,寻找启用(以及后来禁用/隐藏)菜单项的方法,但我找不到任何功能或方法来做到这一点。我该如何解决?
我正在编译:
代码代码如下:
c - 在不引起分段错误的情况下修改二进制
我是修补二进制文件的新手,但我真的很想在我的系统上安装一个包。我正在尝试修改二进制包以修复旧链接。二进制文件正在尝试查找符号,_ZN4Glib23spawn_command_line_syncERKSsPSsS2_Pi
但是glibmm
库已更改,因此尝试运行此程序失败并出现符号查找错误。翻阅glibmm
图书馆,我发现似乎是新符号_ZN4Glib23spawn_command_line_syncERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS5_S8_Pi
。然后我尝试通过用新符号字符串替换旧符号字符串来修改二进制文件(使用vim
- 也许这是一个问题);但是,这会导致分段错误。我发现只要我保持符号大小相同,就不会发生这种情况。
如何在不导致分段错误的情况下更改二进制文件中的这个符号?
我也不知道这是否会解决问题或导致更多问题,因此不胜感激。
c++ - glibmm/gtkmm 自定义属性说明/示例请求
我正在尝试使用 GLIBMM 在 C++ 中重新实现一组 GLIB 类。它们中的大多数都是错误的,需要大量扩展,并且由于整个项目都是用 C++ 完成的,我更喜欢在更正之前移植代码。
不幸的是,我不是 GLIB 专家,即使我在官方文档上花了很多天时间,我仍然无法理解一些概念,尤其是关于属性的概念。
据我了解,属性是 setter 和 getter 的完全替代品(也许更多)。基本上,不是对每个属性使用专门的方法,而是对所有属性使用通用的 set/get_property 方法,使用名称(或 ID)访问属性,并使用像 GValue 这样的容器来保存多种数据。
我可以看到的唯一优势是能够访问名称包含在字符串中的属性(例如可能来自配置文件),但我肯定会遗漏一些东西。此外,这在 GLIB 中似乎是正确的,但在 Glib::ObjectBase 中却不是,它表示您应该更喜欢专用的 property_(*) getter/setter 而不是 property_set/get_value。
阅读有关 Glib::Property 的文档我不确定 C++ 中的完整属性实现应该如何,我认为缺乏 GLIB 经验使其变得更加困难。
我想使用 std get/set 方法将每个属性作为属性移动,但我不想做很多更改,因为太晚发现以前的方法更好:)
有人可以解释一下什么是属性(如果与 C++ 类属性相比)?你能给我一个带有信号/插槽的工作属性的例子吗?有人可以说明这两种方式的优点吗?
谢谢!
c++ - 在 solaris10 上编译 gtkmm2.4 示例代码时出错
在我的 Solaris10 机器上尝试编译 gtkmm 示例代码时,我在 glibmm/variant.h 头文件中遇到了一些编译时错误。
系统配置如下:
编译器版本如下:
源代码(sample.cc)如下:
编译源码的命令如下:
pkg-config 命令的输出如下供参考:
以下是我在编译示例 gtkmm 代码时遇到的错误:
早些时候,我收到了更多的错误消息,包括上述错误,但大多数错误通过包含 -library=stlport4 就消失了。
现在,这些错误是因为我的编译器不支持 c++11,因为我在旧的 solaris10 系统上。但我选择 gtkmm2.4 因为我认为它也适用于旧版本的 C++ 编译器。我还尝试检查是否使用更新版本的 glibmm。但是当前安装的 glibmm 仅在我的系统的包管理器中可用。
不确定在哪里可以进一步解决此问题。有什么建议么。
c++ - 为什么下一个代码无法编译?
我如何正确重写下一个来源?它是 GLib 驱动的 IRC-bot 的一部分。编译器崩溃并出现下一个错误:
资料来源:
file - 使用 Glibmm (Gio::File) 将 Glib::ustring 异步写入文件
我只是找不到任何示例代码来使用 glibmm (Gio::File )将Glib::ustring (或者只是一个字符串)异步写入文件。
任何人都可以提供一个示例或链接吗?
c++ - 为什么信号连接会使 SocketClient 对象失效?
我正在尝试通过 giomm 与 Gio 的 SocketClient 类建立 TCP / TLS 连接。
一切都很好,直到我SocketClient::event_signal ()
用sigc::ptr_fun ()
.
这是演示问题的精简示例代码:
当该connect ()
方法被调用时,我得到这个控制台输出:
然后一个分段错误使程序死亡。
我已经打开 G_DEBUG=all 并在第一个错误处停止,但根据回溯,这是connect ()
方法内部的某个地方。
奇怪的是,注释掉连接信号处理程序的源代码行可以解决问题。
那么在这里连接信号时我做错了什么?为什么socket客户端连接后无效?
c++ - 创建套接字时出现异常
我在 Linux 上使用 glibmm v2.42。
我想使用本机 linux 套接字创建一个客户端/服务器。
尝试创建套接字时,总是抛出异常,代码为 15(不支持)。
在下面的代码中,我遍历了套接字系列枚举、类型枚举和协议枚举,但它总是失败。
有任何想法吗 ?有没有人有一个使用 glibmm 的带有本机 linux 套接字的客户端/服务器的工作示例?
谢谢你的帮助。
编辑:在代码中我删除了 XXX 并编写了循环。此代码为所有参数配置返回 15
gtk - 如何在 Gtkmm DrawingArea 中绘制 cairo_surface_t
我正在尝试在 Gtkmm DrawingArea 中绘制一个 cairo_surface_t。
cairo_surface_t * 可以用来初始化可以传递给 Cairo::Context::set_source 的 Glib::RefPtr 吗?
c++ - 为什么 Glib::VariantBase::store 方法会破坏给定缓冲区的开始
使用 Glib::VariantBase 的乐趣可能是无价的。但也给自己带来了许多障碍。我很难理解为什么非常基本的 Glib::VariantBase::store 方法正在改变我的缓冲区的开始。
请假设我有足够的缓冲区分配,最好把它写下来:
然后我想在它的开头添加一个 uint64_t 变量:
让我们用 printf 读取缓冲区
让我们创建一个相当复杂的 GlibVariable
现在让我们存储这个新创建的变量
我们可以读取漂亮缓冲区中的所有数据吗
好的,此时我的前 8 个字节发生了什么,为什么第一个字节 0x1 消失了?