问题标签 [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.
python - Gio SimpleAction 调用函数
我在 Gtk3 应用程序中使用 Gio 操作制作了菜单。菜单项创建为:
在file_open_clicked
, menu.py
,class MenuManager
中定义为:
我收到错误:
我知道SimpleAction
还有一个选择,TreeView
应该被调用。但我不知道怎么做。请帮助
gtk - meld - gi._glib.GError:主题中不存在图标“meld-change-apply-right”。安装有什么问题?
通过从源代码编译每个包,我设法安装了 meld 3.14.2 和所有依赖包,并且所有包都安装在 NFS 共享上,--prefix=<base>/meld
用于依赖项的 meld 工具 && --prefix=<base>/meld/deps
。
最后,我调用了该工具,我可以看到 GUI。但是当我尝试做一些功能测试时,它会给我带来错误。我从未使用过该工具。所以,我不知道它应该如何工作。但是用户已经指出了以下错误,我猜也可能有很多其他错误。但以下是其中之一。
请告诉我可能出了什么问题?
我在整个安装过程和使用该工具时使用了以下变量。
路径,LD_LIBRARY_PATH,PKG_CONFIG_PATH,PYTHONPATH,GSETTINGS_SCHEMA_DIR
使用所有这些路径的原因是它是完全定制的安装,因为已经有现有的 GTK 等版本在服务器上运行,我们不想打扰它们并希望单独设置 meld,并且以某种方式NFS 上共享的相同安装可以从多个服务器使用。
但是,与我们通常安装的其他工具不同,meld 具有非常严重的依赖关系,我们需要编译 GTK 等复杂的包。
无论如何,谁能告诉我们当前安装有什么问题?我是否需要设置更多变量和引用,还是需要使用额外的选项再次安装模块?现在,我只为每个包安装了推荐的依赖项,并留下了可选的包依赖项。
出现错误,我可以在我的安装中找到 png 文件<base>/meld/share/icons/hicolor/16x16/actions/meld-change-apply-right.png
,那么为什么该工具无法找到它?这里的主题是什么意思?
看到窗口后,我实际上为自己感到非常自豪,但现在看来它只是一个功能为零的空窗口:(
bluetooth - 如何使用 dbus/gio 向 bluez 注册个人资料?
我正在尝试通过 D-Bus/Gio 向 bluez 注册个人资料。当我调用 RegisterProfile 时,一切正常。我检查了我的 GError,它是 NULL,我的返回值是一个空的 GVariant。我尝试了很多东西,但这是我最新的代码。当我运行它时,它会打印“g_dbus_connection_call_sync succeeded”,但我无法使用 d-feet 在 D-Bus 中看到我的新配置文件,并且我无法使用我的测试设备连接到它。我知道测试设备上的代码可以工作,或者至少可以直接使用 bluez,但我正在尝试弄清楚如何将 bluez 与 D-Bus 一起使用。
这是我的代码 .h 文件:
这是我的 .cpp 文件:
我有点迷失了,因为我没有得到任何错误信息。感谢大家。
编辑:四处挖掘后,我找到了 dbus bluetooth.conf 文件,这是我的:
我向其中添加了 ProfileManager1 和 Device1,但仍然没有运气。有谁知道我在这里想念什么?我可以使用直接 bluez 注册和使用配置文件,所以我知道这是一个 bluez/dbus 问题。
python-3.x - 将键盘快捷键添加到 GIo.Menu
我正在尝试将 accelgroup(键盘快捷键)添加到 Gio.Menu 项目。但我还没有找到一种方法来做到这一点。就像,在这个例子中,我想用<Ctrl>+o
我怎样才能做到这一点?
c - 如何使用 Gnome GIO 以非阻塞方式逐块读取文件?
以非阻塞方式和逐块处理 GInputStream 的正确(GIO/Glib/GTK/Gnome)方法是什么?
我有一个应用程序正在下载(通过 libsoup)并分块处理数据流并并行执行其他操作。我正在调用g_input_stream_read_async
GInputStream (从接收soup_session_send_finish
并给它一个合理大小的块来读取(在我的情况下为 2048 字节)。
收到g_input_stream_read_async
回调后,我想继续读取字节。因此,第一个想法是g_input_stream_read_async
从回调处理程序递归调用,将自身作为下一个回调传递。但这对我来说似乎很笨拙而且不太正确(而且我不确定将当前仍在执行的回调传递给 GIO 是否安全)。
替代方法可能是分离一个线程并在循环调用中执行通常的阻塞读取g_input_stream_read
。
但是在 GTK / Gnome 世界中通常是如何完成的呢?什么是正确的方法?任何简单的工作示例(最好来自与 GTK / Gnome 相关的开发人员)将不胜感激。
gio - nautilus 和 GIO 的 .hidden 文件功能的文档?
我刚刚发现了一些关于 nautilus 如何读取命名文件.hidden
并隐藏与其中列出的模式匹配的文件的一些内容,并且在某些时候该功能已移至 GIO g_file_info_get_is_hidden
。但是,我无法让它工作。如果我将文件的确切名称放入 中.hidden
,它确实会被隐藏,但我真的很希望能够使用一种模式。我找不到任何关于此功能应该如何工作的可靠或最新文档。
我特别想隐藏匹配的文件hg-checkexec-*
。在 Emacs 下运行的 Mercurial 会定期创建大量这些临时文件,它们会破坏我的 nautilus 视图。
此功能是否记录在任何地方?它应该如何工作?
process - 生成异步进程不适用于 pkexec
我当前的 gksudo 命令适用于 Process.spawn_async_with_pipes。但是,如果我用 pkexec 切换 gksudo,它不会显示 pkexec 窗口,而是在没有提示的情况下直接完成命令并且什么也不返回。
当我将 Process.spawn_command_line_sync 与相同的 pkexec 命令一起使用时,它会提示询问密码并且命令执行良好并返回结果。
我使用 pkexec 的关键原因是使用 polkit 而不会提示用户后续使用需要 root 权限的命令。
我的 Process.spawn_async_with_pipes 代码方法如下所示。
我需要有关如何使 pkexec 作为后台进程工作的帮助,即提示应该阻止 gui,但是一旦用户提供密码,它应该将控制权返回给 gui 并继续在后台执行。这正是 gksudo 发生的情况。
提前致谢
这是异步方法
这就是它的调用方式:
c - 使用 GIO 处理文件
我需要打开一个文件来读取内容并在屏幕上显示其内容。这应该使用 GIO 文件处理来完成。我正在阅读本教程,但作为一种实践,我需要使用 GIO 来编写以下 c 代码的代码。在 c 中,程序可以是:
提前致谢。
c++ - 为什么下一个代码无法编译?
我如何正确重写下一个来源?它是 GLib 驱动的 IRC-bot 的一部分。编译器崩溃并出现下一个错误:
资料来源:
sockets - GTK GIO 如何读取服务器发送的回复
我想在 gtk 中使用 gio 套接字编写一个客户端服务器的东西,我找到了一个将数据发送到服务器的示例代码,但是,我想要的更多的是读取服务器发送的数据/回复。下面是示例代码
上面的代码适用于向服务器发送数据,但是当我尝试从输入流中读取它时,它会进入阻塞状态。我的阅读消息功能看起来像这样