问题标签 [gobject]

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 回答
492 浏览

python - DBus Rhythmbox Gobject 设置属性

我在 Python 中遇到了 Gobject Introspection 的问题。我试图通过 DBUS 访问 Rhythmbox,我可以访问 org.mpris.MediaPlayer2.Player 内部的方法,但我试图为 org.mpris.MediaPlayer2.Player 的属性设置值,这对我不起作用。

我可以使用像 player.PlayPause() 这样的方法。当我尝试

我收到一条错误消息:

0 投票
1 回答
1088 浏览

python - python gtk gobject 切换窗口的可见性

我为隐藏和显示我的窗口编写了全局快捷方式示例,使用像“F12”这样的键,我使用了 python-xlib 和一些名为“pyxhook”的脚本,一切正常,除非我想隐藏()和显示()窗口几次我的过程变成一个僵尸,但相同的代码可以隐藏和显示按钮。

编辑:我使用 Keybinder 库而不是编写纯 python keybinder 解决了我的问题。 http://kaizer.se/wiki/keybinder/

0 投票
2 回答
761 浏览

javascript - 在 javascript 中解压 GVariant

我在 GSettings 中有一个存储为 GVariant 类型a(ss)的数组,我想在 Cinnamon Applet 中使用它。我可以使用以下代码成功检索该值:

但我无法打开它。据我所知,我可能需要使用GVariantIter结构对其进行解包,但文档有限,而且我在 gjs API 中找不到正确的接口(如果确实存在的话)。有谁知道该怎么做?

谢谢!

编辑: 我的架构如下所示:

目前我正在使用外部JSON文件来存储设置,但这并不是 100% 令人满意的解决方案。我想我可以维护两个as-type 变量,并保持它们对齐,但是必须有一种方法可以正确地做到这一点,对吧?

0 投票
2 回答
1902 浏览

python - Gtk.TreeView 中的 Gtk.Entry (CellRenderer)

我想将 a Gtk.Entry(已Gtk.EntryCompletion连接)打包到Gtk.TreeView. 有谁知道如何做到这一点?(我只需要在表格视图中的文本条目上完成条目。)

我是否可能需要继承Gtk.CellRendererorGtk.CellRendererText并覆盖该start_editing方法(或类似方法)?我可以找到 subclassing 的示例Gtk.CellRenderer,但不能修改可编​​辑的行为。我也找不到该Gtk.CellRendererText课程的源代码。

我正在使用 Gobject Introspection(即from gi.repository import Gio, Gtk, GLib, Gdk)。

0 投票
1 回答
1238 浏览

c - 为什么 G_DEFINE_INTERFACE 会触发“预期的声明说明符”编译器错误?

作为熟悉 GObject 的一部分,我正在尝试按照参考手册中的示例创建一个“Hello, world”界面。这是我所拥有的hello_world_if.h

并在hello_world_if.c

但这不会编译:

从此处阅读其他答案看来,此“预期的声明说明符”消息通常意味着尚未包含必要的头文件包含得太晚。但我不确定这里怎么会是这样。(具体来说,向 C 文件添加#include <glib.h>#include <glib-object.h>不会改变任何东西。)

我一定错过了一些简单的东西,但我只是看不到它。帮助?

0 投票
1 回答
354 浏览

python - 从 GtkBin 扩展

我正在尝试制作一个类似于 Gtk 在所有类似 TreeView 的小部件上使用的“快速搜索”条目的自定义小部件。

这是我最初想法的简化示例:

问题如下:

  • 如果我单独使用它,就像在这个例子中一样,似乎有空间分配给自定义小部件,但GtkEntry屏幕上没有显示。我尝试了和自定义小部件(hexpand、vexpand、边距、对齐等)的各种属性组合,GtkEntry但无济于事。
  • 如果与其他小部件结合使用,当我交互式查询小部件分配的高度时,它显然是 1。在屏幕上,小部件实际上不会出现(因为它在其他小部件之间有点“挤压”)。

那么,我在对象初始化或我如何使用这个自定义小部件时缺少一些东西?这是特定于 的问题GtkBin吗?我尝试用 a 做同样的事情,GtkBox并且完美无缺,但我认为GtkBin更适合这个特定的小部件。

0 投票
1 回答
1995 浏览

c - Glib 信号 - 如何检查实例的处理程序是否已被阻止?

在实例g_signal_handler_block的处理程序被 阻塞后,除了将状态存储在布尔变量中之外,是否可以检查处理程序是否仍然被阻塞或同时被 g_signal_handler_unblock 解除阻塞?

我希望这样的事情是可能的

但是"g_signal_handler_is_blocked"函数不存在。g_signal_handler_is_connected不是使用正确的函数,因为信号处理程序保持连接,因此该函数返回 TRUE。

我试过了g_signal_handler_find (),因为有G_SIGNAL_MATCH_UNBLOCKED一种匹配类型,但它还没有奏效。即使我已经重写了我的代码,我仍然想知道它是否可能,因为我相对经常使用阻塞/解除阻塞。

0 投票
2 回答
2267 浏览

python - 强制 PyGtk main 重绘

我有这样的 UI 结构:
1x Horizo​​ntalBox -> 8x VerticalBox -> 2x Section(GObject) -> 1x RectangleWidget(gtk.DrawingArea)

这只是一个两行 16 个 cairo 矩形的表格。

cairo 矩形部件本身是 gtk.DrawingArea 的子类,并且有一个暴露处理程序。

我现在重写了程序,数据结构和UI现在完全分开了。有一个线程在后台运行,更新数据结构。在 UI的前端gobject.threads_init()被调用。在 100 毫秒超时后gobject.timeout_add(100, self.update_widget),主程序发出一个信号,该信号仅由第一个小部件接收。

这里是暴露处理程序:

注意:
如果我最小化并恢复窗口,小部件会收到 gsignal 并得到更新。

我尝试了不同的方法。包括线程、不同的信令......所有方法都会导致上述相同的行为。

如何强制 gtk.main 返回并重绘其他小部件?

0 投票
0 回答
392 浏览

python - Python - Blocked thread at os.listdir

I have a mainloop in my program's main thread (The mainloop is a DBusGMainLoop waiting for a disk I/O event), every time an event handler is called a new thread is dispensed for some file copying. The strange thing happens at this point. Suppose an event is called and thread 1 is started. Thread 1 blocks at the line 'return os.listdir(path)' until a second event happens and consequently a second thread starts. Then the thread 1 will continue working fine but thread 2 blocks. I've also noticed that if I interrupt the mainloop by Ctrl-C both threads will work but obviously the main thread will stop waiting for events.

Can anyone give any hint for why this happens?

This code runs in my main function:

This is where the event handler starts a new thread:

and this is the method in which the thread seems to block or something:

0 投票
2 回答
940 浏览

c - GTK/GObject detail_signal 参数

在 GObject 参考手册中,它表示对于一个函数:

需要格式为“signal-name::detail”详细信号字符串参数。我对此的初步理解是有预定义的信号详细信息要传入。如果是这种情况,我在哪里可以找到这些的列表?如果不是,那么它到底是什么意思,因为手册并没有把它说得太明显。