问题标签 [glib]

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 投票
2 回答
3236 浏览

glib - 在Gobject中,如何覆盖父类的方法属于一个接口?

GObject 类 A 实现接口 IA,B 是 A 的派生类。 B 如何覆盖作为接口 IA 一部分的 A 的方法?

或者,这在 GObject 中是否可行?

我知道如何重写父类方法,但是当继承遇到接口时,事情似乎更复杂了。

非常感谢!

0 投票
1 回答
7079 浏览

c - 用于迭代 GList 的宏

我正在使用 GLib 的双向链表结构 GList。我想知道是否有任何标准宏用于迭代 GList。我在 GLib 文档中找不到任何这样的东西。结果,我制作了自己的宏,但如果存在,我宁愿使用标准的东西。

为了说明这个问题:通常我写了很多看起来像这样的代码:

使用宏可以将其简化为

噪音要小得多。


注意:我意识到 GLib 提供了一个 foreach 函数来迭代列表并为每个元素调用回调,但回调的间接性通常会使代码更难阅读,特别是如果回调只使用一次。


更新:由于没有标准宏,我将我正在使用的宏放在这里,以防它对其他人有用。欢迎更正/改进。

0 投票
2 回答
11241 浏览

c - 如何解析 glib 字符串(gchar *)中的整数?

我有一个包含整数值(的数字)的字符串,我想将此值作为 int 获取。我知道还有其他方法可以做到这一点,例如atoi();但是,我真的很想使用 glib 来做到这一点。是否存在这样的解析/转换功能?

0 投票
4 回答
1998 浏览

python - 在 Windows 上使用 Glib 观察套接字会将它们置于非阻塞模式

以下代码在 Windows 上无法正常工作(但在 Linux 上可以):

glib 源代码中各个地方的注释片段以及其他地方提到在 Windows 中,套接字在轮询期间处于非阻塞模式。结果,回调self.outgoing_cb被不断调用,并且写入套接字失败并显示以下错误消息:

在写作之前打电话sock.setblocking(True)似乎并没有规避这一点。通过降低轮询的优先级并忽略错误消息,它可以按预期工作,但会引发很多事件,并消耗大量 CPU。有没有办法绕过 Windows 中的这个限制?

更新

我可能会指出,轮询的全部意义POLLOUT在于,当您进行 write 调用时,您将不会得到EAGAIN/ EWOULDBLOCK。我收到的奇怪错误消息,我相信这将是这两个错误代码的 Windows 等效项。换句话说,gobject.IO_OUT当套接字不允许我成功写入时,我会收到事件,并且将其置于阻塞模式仍然会给我这个不适当的错误。

另一个更新

在 Linux 上,这可以正常工作,套接字没有切换到非阻塞模式,我收到IO_OUT, 当套接字让我在没有阻塞的情况下写入或抛出错误时。这是我最想在 Windows 下模拟/恢复的功能。

补充说明

来自man poll

来自man select

0 投票
1 回答
399 浏览

gtk - 在 Gtk+/Glib 下是否有任何实用函数,我们可以在其中读取和写入 config 文件?

我有一个配置文件,其中有键和值,如下所示:

那么 Gtk/Glib 中是否有任何实用程序函数可以读取此文件并检索与键对应的值?

0 投票
1 回答
1316 浏览

c - 为什么 GLib 重新定义类型?

在 GLib 中重新定义类型背后的原因是什么?为什么它们会char变成gcharint变成gint等?

0 投票
3 回答
611 浏览

c - What should I use instread of g_strncasecmp?

It looks like g_strncasecmp is deprecated, so I am looking for another function to do the same thing.

0 投票
1 回答
3408 浏览

c - g_main_loop 在 gtk 编程中是如何工作的?

我是 GTK+ 编程的新手。我遇到了一个名为g_main_loop(). 我在我的代码中使用了它,但我仍然不知道它是如何工作的。有人可以g_main_loop()用小代码片段解释吗?

0 投票
2 回答
273 浏览

c - g_strduping char 数组成员元素

最后一行没有编译。我也试过 &(inst->name) 没有运气。我得到的错误是:

错误:char 不是结构类型。

我知道 char[] 和 char * 完全是不同的类型。但是 g_strdup 不应该能够获取 C 字符串的起始位置并欺骗它吗?如果我执行以下操作,它会起作用:

如何在不制作本地 char 数组副本的情况下实现我想要做的事情?我认为我在第一种情况下没有正确传递参数,因为在这两种情况下 g_strdup 都被传递了一个 char 数组。

0 投票
2 回答
2052 浏览

asynchronous - glib 信号是异步的吗?

当使用 glib 通过 调度信号时emit,所有“侦听器”/处理程序是背靠背调用还是在每个侦听器/处理程序之后将控制权交给事件循环?