问题标签 [gobject-introspection]

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

python - 在小部件中存储自定义信息,gobject-introspect

有没有办法用小部件存储自定义信息?

例如,假设我有一个包含 20 个网址的列表。

我创建了 20 个按钮,每个 url 一个。

我想这样做,所以当我单击一个按钮时,会打开一个 url。但是我需要一种方法来知道哪个按钮链接到哪个 url,所以当按钮被点击时,我可以将 url 传递给事件处理函数来打开它。

我想到的另一个解决方案是创建一个扩展 Gtk.Button 类的自定义类,就像这样

然后我可以简单地做 button = MyButton(url)

但这似乎有点矫枉过正。所以我想知道我是否可以在小部件本身上存储自定义信息。

0 投票
1 回答
519 浏览

python - 调试 python gtk3 应用程序

我正在用 python 和 gtk3 编写一个文本编辑器,当我关闭一个窗口时,我不断从 glib 中的某个地方收到模糊的警告:

我该如何调试呢?我尝试在 gdb 中运行它,希望我可以从 g_logv 的断点中学到一些东西,但是警告出现但没有触发断点。由于https://bugzilla.gnome.org/show_bug.cgi?id=670507 ,我也无法轻松替换日志处理程序。

我什至尝试更改消息中引用的 python 文件,以便它始终在该点打印 python 回溯,但无论是否发生错误都必须这样做,并且在每个 gobject 方法调用时都会调用它,所以很难解释结果,它仍然没有告诉我关于哪个指针为空的任何信息。

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

python - Python GI Notify 如何调用 Gtk.main()?

我正在尝试创建一个 Python 通知应用程序。简而言之,这是我想做的:
1. 检查我的 gmail 帐户
2. 显示未读邮件数量的通知
3. 显示一个允许我打开 chromium 的按钮(使用系统调用)

现在一切看起来都很好。检查邮件部分很容易。我序列化了我的未读邮件计数,这样通知就不会每分钟都出现。它仅在我有新邮件时显示。
我阻止的地方是我不知道如何创建主 gtk 循环以便我可以处理按钮信号。

这是我的代码:

我记得我的通知过去可以与 pygtk 和 pynotify 一起正常工作。虽然我想更新我的代码并且因为我丢失了最后一个代码,但我对此一无所知。在我的 main 中调用 Gtk.main() 只会阻止程序,直到我杀死它。

我正在使用 Gnome3.6、Archlinux 和 python3.3。
那么有谁知道如何在程序结束之前“等待”信号处理程序被点击?事实上它运行良好,但脚本只是在显示通知时结束并且它不等待信号。

非常感谢 :)

编辑:我的问题的更多细节: 最终结果
如您所见,程序已经结束并且不等待信号。这就是我现在要解决的问题。

0 投票
2 回答
2799 浏览

gobject-introspection - g-ir-scanner 无法生成 gir 文件

我正在尝试从一个非常简单的库生成一个.gir文件;它基本上是 GLib 文档中的 GObject 示例。使用 g-ir-scanner 时,失败并出现以下错误:

我真的不知道出了什么问题。有任何想法吗?

0 投票
3 回答
2176 浏览

c++ - 将 C++ 绑定与 GObject Introspection 结合使用

我决定在我的项目中使用Goffice库。但是我是用 C++ 写的,所以我更喜欢有一个 C++ 类接口,就像我使用 gtkmm 而不是直接使用 GTK+ 一样。

文档(见上面的链接)说我可以使用 GObject Introspection。所以我开始阅读它。我读了又读,我就是不明白如何使用 GOffice 的任何绑定。我在我的系统上以及 PackageKit 安装的文件列表中查找了 goffice gi-repository/typelib 文件。什么也没找到。如果 goffice 或 goffice-devel 包依赖于 gobject introspection 包,我检查了 PackageKit。也许他们间接依赖,但他们不直接依赖它(否则我会在列表中看到它)。

我试了又试,但找不到可以简单地解释如何使用 GObject 编写的库(例如 GOffice)并将其用于另一种语言(例如 Python)或在我的情况下为 C++ 的资源。当然,我可以直接使用C函数,但重点是我想要一个类似于gtkmm的界面。

(我使用 GNU/Linux,用 gtkmm 和 GNU 构建系统编写桌面应用程序,goffice 版本 0.10)

0 投票
1 回答
226 浏览

python-3.x - 我应该使用 Nautilus GIR,如果是,文档在哪里?

我正在编写一个基于 Python3/GObject 的应用程序,它将使用许多类似文件浏览器的小部件。从头开始编写这些或将 GObject Introspection 与 Nautilus 一起使用是最好的选择,如果是这样,我在哪里可以找到或如何生成文档?

我能找到的所有 Nautilus API 文档都非常古老,实际上是 Nautilus-Extension API 或其他人代码中的片段。

编辑:似乎 Nautilus 的 GIR 绑定实际上是针对扩展 API 的,而像 Gtk 本身那样彻底的绑定并不存在。

0 投票
2 回答
1608 浏览

gstreamer - 在带有 GStreamer 的 Python 中,如何使用文件对象作为输入源?

我目前正在做:

但是uri,我如何使用原始文件源而不是使用source_file = request.POST['file'].file. (也许这会从字符串加载视频文件?)

到目前为止,我的研究使我找到了appsrchttp://ingo.fargonauten.de/node/447),但我不确定如何将它与GStreamer 1.0一起使用,因为我无法弄清楚如何将文件加载到缓冲区中:

0 投票
1 回答
1017 浏览

python - gobject-introspection 覆盖导致导入错误

我在 ubuntu raring 上的 python2.7 中使用 gobject-introspection,并且在构建一些包时遇到了导入错误。我已经隔离了一组最小的步骤来复制它:

  1. 制作本地目录结构:

    /li>
  2. 放标准样板

    在这两个__init__.py文件中。

  3. 从包含本地副本的目录中gi,运行以下命令:

    /li>
  4. 我收到一条错误消息,如下所示:

    /li>

有什么解释吗?我找不到任何关于预期行为的体面文档,因为 gobject-introspection 似乎是一个文档记录非常差的项目。非常感谢您的帮助!

0 投票
1 回答
536 浏览

python - 使用内省绑定的代码完成

我刚开始使用和 中的各种其他库进行编码GObject,并且由于导入时间自省绑定,代码完成在任何 IDE 中都不起作用。有什么方法可以让它工作吗?GTKgi.repository

我具体使用 Pycharm。

谢谢。