问题标签 [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.
javascript - 无法使用 GSettings 更改 dconf-entry
我目前正在Gjs上构建一个简单的应用程序,它应该会更改我的 gnome-shell 的背景图像。可以在此处找到有关如何使用gsettings
-tool完成此操作的解决方案。
因为我想围绕它构建一个桌面应用程序,所以我想org.gnome.desktop.background.picture-uri
通过使用 Gio 的GSettings
-class来更改 -key 。但是使用set_X()
- 方法不会改变键的值。
这是我更改 gsettings 值的代码:
读取值确实按预期工作,is_writable()
- 方法返回true
,set_string()
- 方法也返回true
。
我已经检查过我没有处于“延迟应用”模式并且密钥有一个GVariantType
字符串,所以set_string()
- 方法应该可以工作。
使用普通的gsettings
命令行工具(如链接帖子中所述)工作得很好。
我无法弄清楚问题是什么,有什么地方可以查找日志或其他东西吗?
linux - gio.h 没有这样的文件或目录
我正在尝试在developer.gnome.org链接上编译 GIO 示例程序代码。我用来编译它的命令是
但是一个错误信息
glib 和 glib-devel 已安装(我认为 GIO 带有 glib,对吗?)我在这里做错了。
编辑:我正在使用的centos5.5(我应该使用它)有glib2 2.12版本,只有2.15或更高版本的glib2与GIO一起出现。我不确定如何单独安装 GIO。
python - 如何设置在 Rhythmbox 2.96 中播放的歌曲的评分?
我正在尝试创建一个 Python 插件,它将在 Rhythmbox 2.96 中设置当前播放歌曲的评分。Rhythmbox 2.96 似乎不再允许您使用 API(Python 模块)来设置歌曲的评分;与播放器相关的操作已被删除,取而代之的是 MPRIS。
然后我尝试查看将 dbus 与 MPRIS 一起使用,但 MPRIS 也没有设置歌曲评级的规范。经过大量的挖掘,我在 Rhythmbox 代码库中找到了这个示例,并将其改编成一个测试脚本。
它可以工作,但 SetEntryProperties 方法导致 Rhythmbox 冻结大约 30 秒。这是 Python 脚本。
指示:
将代码复制到名为 rate.py 的文件中
使用从终端启动节奏盒
/li>在 Rhythmbox 中,从插件中启用 Python 控制台
启动 Python 控制台并运行
/li>您将在终端中看到打印输出,并且 Rhythmbox 会冻结大约 20-30 秒。
被打印的例外是:
我对 Python/dbus 的了解有限,所以我不明白为什么会发生该错误。我会很感激任何帮助。
另外,如果您知道通过代码在 Rhythmbox 中设置歌曲评分的更好方法,也欢迎您!
我正在使用 Ubuntu 12.04,如果它有所作为的话。
glib - 有没有办法将数据附加到现有的 GVariant 字典?
我使用 GSettings 来存储我的应用程序设置。这些格式是“a{q(bsyssbyqqqq)}”,所以它是字典。
有时我需要向该字典添加新记录。我可以从 GSettings 作为 GVariant 检索它。有没有办法只添加一条记录?
我创建了新的 GVariantBuilder 来创建该新条目,它工作正常,但其操作结果只是一条记录。要添加所有剩余的,我需要遍历所有现有的字典条目并将它们添加到构建器中。有没有更简单、更有效的方法来做到这一点?
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?
c - 使用 GIO 库创建 FTP 挂载
我正在尝试使用GIO。我想出了如何使用 GVolumeMonitor 来捕捉音量变化并获取音量列表。g_volume_monitor_get_mounts
函数给了我一个现有 GMount 的列表。它们中的每一个都可以代表一个 HDD 分区或一个网络共享的挂载(ftp、smb、sftp 等)。安装 HDD 分区似乎可以使用g_volume_mount
. 但是如何创建代表网络共享的 GMount 呢?哪些类对此负责?
这是我的代码:
(我知道必须有g_object_unref
和g_list_free
。)
输出:
我使用 nautilus 创建了第一个 sftp 挂载。现在我想自己实现这个功能。目标操作系统是 Ubuntu 12.04。
unicode - 使用 Javascript 和 gjs 的 Unicode 文件 I/O?
任何人都可以给出如何使用Javascript和Gjs读/写Unicode文本文件的任何工作示例,可能使用 Gio 和/或 Glib?我在 Javascript 方面经验丰富,但这些 API 对我来说仍然是陌生的,而且是相当新的技术,谷歌搜索并没有多大帮助。
我看过这个:https ://live.gnome.org/Seed/Tutorial/Simple_file_io ,但它是基于种子的(不是 Gjs),而且看起来很旧。我收到错误(例如第 9 行 Gio.read 上的参数太少),因此无法使用 Unicode 文本进行测试。
一个工作片段会很有帮助。谢谢!
更新:我正在 Ubuntu 12.04 64 位上进行测试。
python - 如何在 Rhythmbox 中查询数据
我正在使用 ubuntu 12.04,我正在尝试编写一个 python 插件来查询 Rhythmbox 数据库。Rhythmbox 版本是 v2.96,但 v2.97 也会出现此问题。当我执行 python 查询时,Ubuntu 因分段错误而崩溃。
我需要确认以下内容是否正确,以及我是否发现了特定于 Ubuntu 的错误,或者我是否误解了如何正确查询。如果其他使用其他发行版的人可以确认 - 这将是最受欢迎的。
我已经就分段错误提交了关于 bugzilla的错误报告。但是,我的问题并不是严格意义上的——它专门试图确认正确的 python 代码来查询数据。
因此我的问题是:下面的代码片段对于查询 Rhythmbox 数据库是否正确,或者我是否需要安装一个额外的包来启用查询。
脚步:
- 启用 python 控制台插件
- 键入(或逐行复制并粘贴以下内容)
如果 ubuntu 12.04 在我输入此行时,Ubuntu 会因分段错误而崩溃
因此,我实际上是否正确使用了调用中的第一个参数 - 查询指针数组 (PtrArray) - 还是我的查询函数参数不正确?
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» 的应用程序执行类似的操作
mime-types - Gtk3:获取 mime 类型的图标文件名
我正在编写一个命令行程序来获取与 mime 类型关联的 Gtk3 图标文件名......这个想法是能够做到这一点:
不幸的是,这种情况正在发生:
在搜索文档和谷歌搜索解决方案后,我对如何继续感到困惑。我在 X 终端中运行它,并正确导出了 DISPLAY:
该程序的来源如下;我正在反对 glib2-2.30.3 和 gtk3-3.2.4。任何见解都值得赞赏!