问题标签 [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.
c - GSettings 值似乎发生了变化,但不会持续存在
GSettings 值似乎在我的 C 代码中发生了变化,但它不会持续存在。dconf-editor 显示它保持不变(默认的“picture-uri”设置)。
我错过了什么吗?
这是我编译它的方式:
谢谢。
python - 如何更改 GTK 容器小部件的大小?
我对 Gtk 如何控制 GtkBox 等容器内的小部件大小感到非常困惑。请问有人可以指导我解决这个问题的复杂性吗?
我有一个包含两个小部件的 GtkBox - 在示例中这些只是两个 GtkButton。
第一个小部件应该只填充 GtkBox 容器内的可用空间。
我想强制的第二个小部件始终是一个物理正方形 - 因此随着正方形的扩大,第一个小部件的宽度会缩小。
一些示例代码将在这里有所帮助:
当您展开窗口时 - GtkBox 也会展开。那挺好的。第一个按钮也同样展开。也好。然而,即使我对 GtkWidget 使用set_allocation方法,第二个按钮也永远不会是方形的。
我不能使用 set_size_request (或者我可以吗?),因为当我缩小窗口时,由于第二个按钮的最小尺寸改变,窗口无法调整大小。
我试图弄清楚容器如何管理间距的原因是我希望最终实现像这个 iTunes 示例这样的东西:
即,您可以看到封面始终是方形的 - 但音乐细节会根据可用空间缩小或扩大。
python - 如何从 python 中使用 g_settings_schema_get_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 中使用它?
c - 异步 GIO 服务器/客户端
我想创建一个使用 GIO 通过套接字进行通信的异步服务器和客户端应用程序。由于我是 GIO 的新手,因此在浏览时我得到了以下代码 - 这是我的客户。我找不到服务器的任何示例。请在这方面指导我。
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?
c - 如果 GInterface 方法签名与 VirtualTable (struct) 方法不匹配怎么办?
我决定回到 GObject 中 GInterfaces 的基础知识,所以我又去阅读了基础教程。在本章中,您可以看到如何定义一个非常简单的 GInterface。
如您所见,方法maman_ibaz_do_action
和maman_ibaz_do_something
的签名分别与符号_MamanIbazInterface.do_action
和的签名匹配_MamanIbazInterface.do_something
。
但如果他们不这样做会发生什么?我有一个真实的例子。GInterface 是gpollableinputstream ( source here )。该方法特别是 read_nonblocking(),它在 VT 中有 4 个参数,但后来它在标头函数中有 5 个参数。
那么,如果这个接口的实现者覆盖了前者(这里是真实世界的例子),那么有人怎么能从其他类调用这个实现呢?
javascript - Gnome-Shell 扩展,观察 GSettings 的变化?
所以我正在写一个扩展,它有一些偏好。我使用便利.js(如here所述)将首选项存储在GSettings中。相关代码如下所示:
到目前为止效果很好,我也可以使用命令
gsettings 监视器 org.gnome.shell.extensions.workspace-alt-tab 排序模式
确保我真的按照我的意愿设置了值。
但是,当我尝试捕获对这些设置所做的更改以在我的代码中反映它们时,这就是我的问题。从我在其他扩展中看到的内容来看,我猜它应该看起来像这样:
但问题是我只看到从 init 调用的日志行:
Gjs 消息:JS 日志:[_sortModeChanged] 新的 sortMode:最近使用的
另外,我完全不知道如何调试这种东西(即使在 LookGlass 中......)。如果有人可以指出我的愚蠢错误,或者就如何调试这类事情提供一些指示,将不胜感激!
c++ - 如何将 gtk::label 与目录中文件的创建或抑制同步?
我有一个程序列出了工作目录中的所有文件(我glib
用来做这个),然后我在GtkWindow
一个Gtk::Label
. 我通过使用筛选窗口run()
,
我知道如何更改标签,set_label()
我可以通过单击按钮将目录中的文件列表与筛选的列表同步。因此,如果我删除或创建文件,它将删除或添加到文件的标签中。但是我怎样才能让我的程序在不点击的情况下每秒同步呢?
python - 使用 pythons Gio-Bindings 在 DBus 上注册对象
我正在研究现有 C 项目的 Python 克隆。C-Project 连接到自定义 DBus 并在那里提供一个对象来获取回调。
我尝试使用 Python 来复制它,其代码基本上可以归结为:
vtable.method_call
在调用时创建 vtable 时代码失败(get_property
但当我注释一个调用时也失败)以下日志/回溯:
我无法找到register_object()
在 python 中使用的代码,所以我不确定 Gio 的这一部分是否应该可用,或者它是否不完整。
c - Glib/Gio 异步或线程 UDP 服务器
我目前有一个同步 UDP 应用程序接收消息。
编码 :
所以,我想让接收操作,非阻塞而不是阻塞。我想让它成为异步的或/和线程化的,以便同时我可以执行与我想要开发的应用程序相关的其他操作。
但我没有成功地做到我想要的。我尝试使用 GLib IO 通道,但无法使其正常工作。进程正在等待,但这仅仅是因为主循环(我无法远程登录应用程序)。
编码 :
我是 GLib/Gio 的初学者,我认为我在 IO 通道上做错了。我想将它作为一个事件添加到主循环中,以便我可以使用我的回调函数。也许有一种更简单的方法可以做到这一点。
此外,我有一个正在工作的 TCP 异步和线程服务器,但我没有找到如何对 UDP 做同样的事情(使用 GThreadedSocketService 并创建一个套接字侦听器,然后将服务添加到主循环。使用 TCP 很容易)。
你知道如何进行吗?如果你知道怎么做但只使用基本的 API 套接字,我仍然接受它!谢谢。