问题标签 [gio]

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 投票
0 回答
434 浏览

c - GSettings 值似乎发生了变化,但不会持续存在

GSettings 值似乎在我的 C 代码中发生了变化,但它不会持续存在。dconf-editor 显示它保持不变(默认的“picture-uri”设置)。

我错过了什么吗?

这是我编译它的方式:

谢谢。

0 投票
1 回答
3409 浏览

python - 如何更改 GTK 容器小部件的大小?

我对 Gtk 如何控制 GtkBox 等容器内的小部件大小感到非常困惑。请问有人可以指导我解决这个问题的复杂性吗?

我有一个包含两个小部件的 GtkBox - 在示例中这些只是两个 GtkButton。

第一个小部件应该只填充 GtkBox 容器内的可用空间。

我想强制的第二个小部件始终是一个物理正方形 - 因此随着正方形的扩大,第一个小部件的宽度会缩小。

一些示例代码将在这里有所帮助:

当您展开窗口时 - GtkBox 也会展开。那挺好的。第一个按钮也同样展开。也好。然而,即使我对 GtkWidget 使用set_allocation方法,第二个按钮也永远不会是方形的。

我不能使用 set_size_request (或者我可以吗?),因为当我缩小窗口时,由于第二个按钮的最小尺寸改变,窗口无法调整大小。

我试图弄清楚容器如何管理间距的原因是我希望最终实现像这个 iTunes 示例这样的东西:

在此处输入图像描述

即,您可以看到封面始终是方形的 - 但音乐细节会根据可用空间缩小或扩大。

0 投票
2 回答
873 浏览

python - 如何从 python 中使用 g_settings_schema_g​​et_key?

我正在关注http://www.micahcarrick.com/gsettings-python-gnome-3.html从 python 使用 GSettings,并且我已经成功读取了一个值:

这将返回一个“GLib.Variant”,它是一组枚举值中的一个。为了获得我可以设置的有效枚举,我使用:

但是,文档说

g_settings_get_range 自 2.40 版以来已被弃用,不应在新编写的代码中使用。请改用 g_settings_schema_key_get_range()。

那么,如何从 python 中使用 g_settings_schema_key_get_range 呢?

更一般地说,在给定 C 文档的情况下,我如何自省 Gio 以找出如何从 python 中使用它?

0 投票
1 回答
970 浏览

c - 异步 GIO 服务器/客户端

我想创建一个使用 GIO 通过套接字进行通信的异步服务器和客户端应用程序。由于我是 GIO 的新手,因此在浏览时我得到了以下代码 - 这是我的客户。我找不到服务器的任何示例。请在这方面指导我。

0 投票
1 回答
140 浏览

client-server - How to achieve client server communication using GSOCKET

I want to use gio and glib to create client-server communication. However, I'm getting confused with GSocket. Can someone give some examples. Also, how can GMainLoop be helpful in this?

0 投票
1 回答
117 浏览

c - 如果 GInterface 方法签名与 VirtualTable (struct) 方法不匹配怎么办?

我决定回到 GObject 中 GInterfaces 的基础知识,所以我又去阅读了基础教程。在本章中,您可以看到如何定义一个非常简单的 GInterface。

如您所见,方法maman_ibaz_do_actionmaman_ibaz_do_something的签名分别与符号_MamanIbazInterface.do_action和的签名匹配_MamanIbazInterface.do_something

但如果他们不这样做会发生什么?我有一个真实的例子。GInterface 是gpollableinputstream ( source here )。该方法特别是 read_nonblocking(),它在 VT 中有 4 个参数,但后来它在标头函数中有 5 个参数。

那么,如果这个接口的实现者覆盖了前者(这里是真实世界的例子),那么有人怎么能从其他类调用这个实现呢?

0 投票
1 回答
696 浏览

javascript - Gnome-Shell 扩展,观察 GSettings 的变化?

所以我正在写一个扩展,它有一些偏好。我使用便利.js(如here所述)将首选项存储在GSettings中。相关代码如下所示:

到目前为止效果很好,我也可以使用命令

gsettings 监视器 org.gnome.shell.extensions.workspace-alt-tab 排序模式

确保我真的按照我的意愿设置了值。

但是,当我尝试捕获对这些设置所做的更改以在我的代码中反映它们时,这就是我的问题。从我在其他扩展中看到的内容来看,我猜它应该看起来像这样:

但问题是我只看到从 init 调用的日志行:

Gjs 消息:JS 日志:[_sortModeChanged] 新的 sortMode:最近使用的

另外,我完全不知道如何调试这种东西(即使在 LookGlass 中......)。如果有人可以指出我的愚蠢错误,或者就如何调试这类事情提供一些指示,将不胜感激!

0 投票
1 回答
195 浏览

c++ - 如何将 gtk::label 与目录中文件的创建或抑制同步?

我有一个程序列出了工作目录中的所有文件(我glib用来做这个),然后我在GtkWindow一个Gtk::Label. 我通过使用筛选窗口run()

我知道如何更改标签,set_label()我可以通过单击按钮将目录中的文件列表与筛选的列表同步。因此,如果我删除或创建文件,它将删除或添加到文件的标签中。但是我怎样才能让我的程序在不点击的情况下每秒同步呢?

0 投票
1 回答
692 浏览

python - 使用 pythons Gio-Bindings 在 DBus 上注册对象

我正在研究现有 C 项目的 Python 克隆。C-Project 连接到自定义 DBus 并在那里提供一个对象来获取回调。

我尝试使用 Python 来复制它,其代码基本上可以归结为:

vtable.method_call在调用时创建 vtable 时代码失败(get_property但当我注释一个调用时也失败)以下日志/回溯:

我无法找到register_object()在 python 中使用的代码,所以我不确定 Gio 的这一部分是否应该可用,或者它是否不完整。

0 投票
1 回答
2244 浏览

c - Glib/Gio 异步或线程 UDP 服务器

我目前有一个同步 UDP 应用程序接收消息。

编码 :

所以,我想让接收操作,非阻塞而不是阻塞。我想让它成为异步的或/和线程化的,以便同时我可以执行与我想要开发的应用程序相关的其他操作。

但我没有成功地做到我想要的。我尝试使用 GLib IO 通道,但无法使其正常工作。进程正在等待,但这仅仅是因为主循环(我无法远程登录应用程序)。

编码 :

我是 GLib/Gio 的初学者,我认为我在 IO 通道上做错了。我想将它作为一个事件添加到主循环中,以便我可以使用我的回调函数。也许有一种更简单的方法可以做到这一点。

此外,我有一个正在工作的 TCP 异步和线程服务器,但我没有找到如何对 UDP 做同样的事情(使用 GThreadedSocketService 并创建一个套接字侦听器,然后将服务添加到主循环。使用 TCP 很容易)。

你知道如何进行吗?如果你知道怎么做但只使用基本的 API 套接字,我仍然接受它!谢谢。