问题标签 [pygobject]
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 - PyGObject - 状态图标上的左键菜单
我开始为 Gnome 编写一个小面板小程序,我希望用户能够左键单击状态图标以查看一些选项和信息,例如类似于 Gnome 3 中的声音图标,您可以在其中设置音量通过左键单击,同时通过右键单击设置首选项。右键代码是这样的:
其中right_button_click
是在右键单击事件中调用的函数的名称。重要的部分是"popup-menu"
。设置左键单击事件的替代方法是什么?
python - 为 pygobject 和 pygtk 配置 gobject-introspection 的问题
我正在尝试在我的 Mac 上安装 pygtk,然后要求我安装 pygobject,然后要求我获取 gobject-introspection 。我在此安装中遇到的问题是在配置它时显示此错误:
检查 FFI... 不
检查 ffi.h... 配置:错误:未找到 ffi.h
请帮我解决这个问题,因为我需要 gtk 。
/usr/include/ffi->ffi.h 的位置
提前致谢
python - 在 PyGObject 内省中,带有 Python 的 GTK 中的线程是否发生了变化?
我正在第一次将程序从 PyGTK 转换为 PyGObject 内省,并且遇到了线程障碍。我有一个需要一些时间才能完成的过程,所以我弹出一个带有进度条的对话框,我使用一个线程来完成这个过程并更新进度条。这在 PyGTK 上运行良好,但在转换为 PyGObject 后,我得到了所有通常不正确的线程怪异:程序挂起,但它似乎挂在进程的不同部分等。所以我觉得有些东西已经改变了,但我可以不知道是什么。
这是这个简单的 PyGTK 进度条示例:http://aruiz.typepad.com/siliconisland/2006/04/threads_on_pygt.html 如该页面所示,代码有效。我已经将它转换为 PyGObject 内省,我遇到了与我的程序相同的问题:它挂起,它没有正确更新进度条等。
在 Gdk 线程功能的文档中,它强调在运行 gdk_threads_init() 之前必须先运行 g_thread_init(NULL)。但是要运行它,您需要链接一些额外的库。如果我尝试通过自省导入 GLib,然后尝试运行 GLib.thread_init(),则会收到以下错误:
我认为这是因为没有链接额外的线程库。如果这是我的线程问题的原因,我如何使用 GLib,就好像这些库已经链接一样?
python - 如何使用 PyGObject 将弹出菜单附加到 GTK2 中的列标题按钮?
当用户右键单击 a 的标题行时,我想弹出一个上下文菜单Gtk.TreeView
。在 GTK3 中,Gtk.TreeViewColumn
有一个 get_button() 方法,这使得这很容易;只需将菜单附加到按钮并将其连接到“单击”事件即可。但是,在 GTK2 中,这是行不通的。你只能调用一个get_widget()
方法,如果你没有通过set_widget()
. 我尝试将Gtk.Label
带有列名的 a 放入 aGtk.EventBox
并将其设置为小部件 将 连接EventBox
到“button_press_event”的回调后,单击它不会生成事件。
我尝试执行此处列出的操作,但get_parent()
在列小部件上执行操作会返回 None,并且永远不会像他们的代码所暗示的那样到达按钮。
人们为此找到了哪些解决方案?
python - 神秘的 GObject 警告:断言 `G_IS_OBJECT (object)' 失败
当我运行我的 GTK(Python GObject 内省)应用程序时出现警告,但我无法弄清楚它的来源。当应用程序正在加载并且我正在填充 GtkListStore 时,在我第一次追加一行之后,我收到以下警告:
其余行在没有任何进一步警告的情况下追加。事实上,它总是只提出一次,总是在第一个要附加的项目上。但是,该行的实际内容似乎并不重要。无论如何,它都会发出警告。程序完成加载后,当我在 TreeView 中浏览它们时,所有行似乎都正常。
我的列表商店如下所示:
最后几列从关联的 GtkTreeView 中隐藏,但警告发生在 TreeView 创建之前,所以我确定它来自 ListStore。不用说,我确定我传递的所有行都在正确的格式,因为就像我说的那样,警告总是在第一行之后提出,无论我先添加哪一行。
有谁知道是什么原因造成的?它不会阻止我的应用程序运行,所以它不是紧急情况,但我宁愿不让它向最终用户发出警告。
编辑:我使用 Python 的-W all
命令行参数确认警告实际上是针对所有行引发的。
我尝试使用该方法进入该append()
方法,但有趣的是,当它尝试设置包含 GdkPixbuf 的列的值时pdb
,它卡在代码中的循环中,因此在调试程序时我从未真正看到引发的警告。gi
我的猜测是 Pixbuf 导致了问题,但我不知道如何更改它以消除警告。Pixbuf 在 TreeView 中正确呈现,所以我不确定发生了什么。
python - 如何安装支持 Python 3 的 PyGObject
我一直在尝试使用多种方法安装 PyGObject。首先,使用apt-get
but 只为 Python 2.x 安装它。接下来我尝试自己编译它,但在为 Python 3 编译它时遇到了问题。
有谁知道如何安装它?
events - Gtk 开关激活信号未触发
我正在尝试在应用程序中使用 Gtk.Switch 小部件,但“激活”信号未通过点击触发。通过在其上按回车/空格键使用带有键盘的小部件时,它可以正常工作,但单击不会触发“激活”事件。
任何想法为了注册 Gtk.Switch 上的点击信号要做什么
python - 对 Python GUI 应用程序进行单元测试的推荐方法是什么?
我目前很愚蠢地尝试为 Python 桌面应用程序维护两个并行代码库,一个使用 PyGObject 自省用于 GTK 3,一个使用 PyGTK 用于 GTK 2。我主要在 PyGObject 分支上工作,然后我将更改移植到PyGTK 分支。由于这些实现之间的所有细微差别,我经常忽略一些事情并导致我错过并意外释放的损坏,只是被用户发现。
我试图找出一种设计一些单元测试的好方法,这些单元测试最好适合在两个代码库上运行。它不是一个过于复杂的程序,(它本质上是一个图书馆管理工具,想象一下像 iTunes):
我试图尽可能地将视图与模型分开。这些项目中的每一个都在其自己的类中实现(嗯,在从列出的 GTK 类继承的类中)。ListViews 与从 ListStores 继承的其他类耦合在一起。库本身由不同的类处理。尽管如此,需要测试小部件之间的交互。例如,如果用户在过滤器视图中选择特定项目,过滤库,然后从过滤结果中选择项目,则文本视图必须显示正确库条目的信息,由于翻译,这是半复杂的TreeModelFilter 和原始 ListStore 等之间的迭代。
那么,我问,为这样的 GUI 应用程序编写健壮的单元测试的推荐方法是什么?我已经看到有一些用于此的库,但 pygtk 的主要库多年来没有更新,因此它们几乎肯定会因 PyGObject 内省而失败。也许我没有足够的创造力来找出使用 Pythonunittest
模块的好方法,所以我愿意接受建议。
python - Buildout:使用来自系统 Python 的依赖项
我正在尝试将buildout用于 Python 包,该包在使用时依赖于 2 个扩展模块:dbus-python和 pygobject。两个模块都使构建失败:dbus-python缺少一个setup.py
文件,而pygobject
有一个文件,但不鼓励使用——应该使用configure、make、make install 。因此,buildout 无法在开发环境中设置这些依赖项。
这是我的buildout.cfg
:
包裹setup.py
在哪里包含:foobar
在寻找解决方案时,我偶然发现了该配方z3c.recipe.scripts
及其利用系统范围安装的鸡蛋的能力。然而,当应用于我的buildout.cfg
..
..它似乎没有任何效果(仍然失败),尽管两个包(dbus,gobject)都安装在我的系统 Python 中。当我删除allowed-eggs..
线时也是如此。
我的问题:我在概念层面上是否有问题,或者我的buildout.cfg
?
我知道有一个使用configure、make、make installzc.recipe.cmmi
安装鸡蛋的配方。但是,在我的情况下,简单地引用系统 Python 鸡蛋就足够了。我不需要由 buildout 生成的 100% 可重现的环境。此外,dbus-python和pygobject默认安装在大多数 Linux 桌面系统上,即打算使用的环境。foobar
python - 如何在 Windows 上安装 PyGI(Python Gobject Introspection)?
安装 python 解释器:http: //python.org/ftp/python/2.7.2/python-2.7.2.msi 和: http: //ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/ 2.24/pygtk-all-in-one-2.24.0.win32-py2.7.msi 运行:python import gtk ...works
是否有一个 PyGI all in one 安装程序?运行:python import gi 错误:无法导入模块 gi ...如何使其在 Windows 上工作?在 Ubuntu 11.04 上运行而无需安装任何东西。