问题标签 [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 投票
1 回答
1451 浏览

javascript - 无法使用 GSettings 更改 dconf-entry

我目前正在Gjs上构建一个简单的应用程序,它应该会更改我的 gnome-shell 的背景图像。可以在此处找到有关如何使用gsettings-tool完成此操作的解决方案。

因为我想围绕它构建一个桌面应用程序,所以我想org.gnome.desktop.background.picture-uri通过使用 Gio 的GSettings-class来更改 -key 。但是使用set_X()- 方法不会改变键的值。

这是我更改 gsettings 值的代码:

读取值确实按预期工作,is_writable()- 方法返回trueset_string()- 方法也返回true

我已经检查过我没有处于“延迟应用”模式并且密钥有一个GVariantType字符串,所以set_string()- 方法应该可以工作。

使用普通的gsettings命令行工具(如链接帖子中所述)工作得很好。

我无法弄清楚问题是什么,有什么地方可以查找日志或其他东西吗?

0 投票
1 回答
8362 浏览

linux - gio.h 没有这样的文件或目录

我正在尝试在developer.gnome.org链接上编译 GIO 示例程序代码。我用来编译它的命令是

但是一个错误信息

glib 和 glib-devel 已安装(我认为 GIO 带有 glib,对吗?)我在这里做错了。

编辑:我正在使用的centos5.5(我应该使用它)有glib2 2.12版本,只有2.15或更高版本的glib2与GIO一起出现。我不确定如何单独安装 GIO。

0 投票
2 回答
999 浏览

python - 如何设置在 Rhythmbox 2.96 中播放的歌曲的评分?

我正在尝试创建一个 Python 插件,它将在 Rhythmbox 2.96 中设置当前播放歌曲的评分。Rhythmbox 2.96 似乎不再允许您使用 API(Python 模块)来设置歌曲的评分;与播放器相关的操作已被删除,取而代之的是 MPRIS。

然后我尝试查看将 dbus 与 MPRIS 一起使用,但 MPRIS 也没有设置歌曲评级的规范。经过大量的挖掘,我在 Rhythmbox 代码库中找到了这个示例,并将其改编成一个测试脚本。

它可以工作,但 SetEntryProperties 方法导致 Rhythmbox 冻结大约 30 秒。这是 Python 脚本。


指示:

  1. 将代码复制到名为 rate.py 的文件中

  2. 使用从终端启动节奏盒

    /li>
  3. 在 Rhythmbox 中,从插件中启用 Python 控制台

  4. 启动 Python 控制台并运行

    /li>
  5. 您将在终端中看到打印输出,并且 Rhythmbox 会冻结大约 20-30 秒。


被打印的例外是:

我对 Python/dbus 的了解有限,所以我不明白为什么会发生该错误。我会很感激任何帮助。

另外,如果您知道通过代码在 Rhythmbox 中设置歌曲评分的更好方法,也欢迎您!

我正在使用 Ubuntu 12.04,如果它有所作为的话。

0 投票
1 回答
801 浏览

glib - 有没有办法将数据附加到现有的 GVariant 字典?

我使用 GSettings 来存储我的应用程序设置。这些格式是“a{q(bsyssbyqqqq)}”,所以它是字典。

有时我需要向该字典添加新记录。我可以从 GSettings 作为 GVariant 检索它。有没有办法只添加一条记录?

我创建了新的 GVariantBuilder 来创建该新条目,它工作正常,但其操作结果只是一条记录。要添加所有剩余的,我需要遍历所有现有的字典条目并将它们添加到构建器中。有没有更简单、更有效的方法来做到这一点?

0 投票
1 回答
961 浏览

c - In GIO, why do these asynchronous file IO operations never complete? (applies to both C and Vala)

I want to perform asynchronous file IO operations. Here is a simplified version of what I am trying to do in Vala:

When I run this program, and no file settings.ini exists, settings.ini is created and I see this output:

If settings.ini exists, nothing is written to it, and I see this output:

I have a similar problem if I try to reproduce the issue in C. Here is my C code (it doesn't replicate the entire vala example above, just the part that creates the file):

When I run this example, I see this output (assuming settings.ini does not exist):

In other words, create_callback is never called.

What am I doing wrong? Why don't g_file_create_async and g_file_replace_contents_async ever complete when I call them?

0 投票
1 回答
684 浏览

c - 使用 GIO 库创建 FTP 挂载

我正在尝试使用GIO。我想出了如何使用 GVolumeMonitor 来捕捉音量变化并获取音量列表。g_volume_monitor_get_mounts函数给了我一个现有 GMount 的列表。它们中的每一个都可以代表一个 HDD 分区或一个网络共享的挂载(ftp、smb、sftp 等)。安装 HDD 分区似乎可以使用g_volume_mount. 但是如何创建代表网络共享的 GMount 呢?哪些类对此负责?

这是我的代码:

(我知道必须有g_object_unrefg_list_free。)

输出:

我使用 nautilus 创建了第一个 sftp 挂载。现在我想自己实现这个功能。目标操作系统是 Ubuntu 12.04。

0 投票
2 回答
1997 浏览

unicode - 使用 Javascript 和 gjs 的 Unicode 文件 I/O?

任何人都可以给出如何使用JavascriptGjs读/写Unicode文本文件的任何工作示例,可能使用 Gio 和/或 Glib?我在 Javascript 方面经验丰富,但这些 API 对我来说仍然是陌生的,而且是相当新的技术,谷歌搜索并没有多大帮助。

我看过这个:https ://live.gnome.org/Seed/Tutorial/Simple_file_io ,但它是基于种子的(不是 Gjs),而且看起来很旧。我收到错误(例如第 9 行 Gio.read 上的参数太少),因此无法使用 Unicode 文本进行测试。

一个工作片段会很有帮助。谢谢!

更新:我正在 Ubuntu 12.04 64 位上进行测试。

0 投票
2 回答
569 浏览

python - 如何在 Rhythmbox 中查询数据

我正在使用 ubuntu 12.04,我正在尝试编写一个 python 插件来查询 Rhythmbox 数据库。Rhythmbox 版本是 v2.96,但 v2.97 也会出现此问题。当我执行 python 查询时,Ubuntu 因分段错误而崩溃。

我需要确认以下内容是否正确,以及我是否发现了特定于 Ubuntu 的错误,或者我是否误解了如何正确查询。如果其他使用其他发行版的人可以确认 - 这将是最受欢迎的。

我已经就分段错误提交了关于 bugzilla的错误报告。但是,我的问题并不是严格意义上的——它专门试图确认正确的 python 代码来查询数据。

因此我的问题是:下面的代码片段对于查询 Rhythmbox 数据库是否正确,或者我是否需要安装一个额外的包来启用查询。

脚步:

  1. 启用 python 控制台插件
  2. 键入(或逐行复制并粘贴以下内容)

如果 ubuntu 12.04 在我输入此行时,Ubuntu 会因分段错误而崩溃

因此,我实际上是否正确使用了调用中的第一个参数 - 查询指针数组 (PtrArray) - 还是我的查询函数参数不正确?

0 投票
2 回答
556 浏览

c - D-Bus 列表名称

如何使用 C 列出 D-Bus sessionBus 中的所有名称?

我正在寻找dbus.list_names python 方法的C GIO等效项

我想列出 «org.mpris.MediaPlayer2» 中的所有名称,例如 «org.mpris.MediaPlayer2.clementine, org.mpris.MediaPlayer2.someotherplayer, ...»

有一个名为 «qdbusviewer» 的应用程序执行类似的操作

0 投票
1 回答
1338 浏览

mime-types - Gtk3:获取 mime 类型的图标文件名

我正在编写一个命令行程序来获取与 mime 类型关联的 Gtk3 图标文件名......这个想法是能够做到这一点:

不幸的是,这种情况正在发生:

在搜索文档和谷歌搜索解决方案后,我对如何继续感到困惑。我在 X 终端中运行它,并正确导出了 DISPLAY:

该程序的来源如下;我正在反对 glib2-2.30.3 和 gtk3-3.2.4。任何见解都值得赞赏!