草庐IT

c - 在 libpango 中调用 pango_cairo_font_map_get_default() 时出现 "GLib-GObject-CRITICAL"的原因是什么?

这是一道关于gtk/glib/libpango/libcairo的概念题。让我们直奔问题。我正在用一位前同事用Go编写的旧C库进行包装,在C代码调用的某处pango_cairo_font_map_get_default()获取由libpango维护的默认font_map。包装基本上是从Go域进入C域(外部函数接口(interface))和C端使用pthread创建一个线程最终调用pango_cairo_font_map_get_default。最初,在纯C端一切正常。包装后,C代码卡在调用pango_cairo_font_map_get_default()printf("beforec

windows - Haskell Platform/Cabal - 由于 'haskell-gi',链接时安装包 'undefined references' 失败

背景目前,我正在从事一个处理计算机视觉的项目。我用..-Haskell作为编程语言。-用于创建GUI的GTK+。-FFmpeg从路径或网络摄像头读取和提取视频/帧。-一些边缘检测算法。我想..-将视频(未修改的输入视频,以及修改后的输出视频)渲染到作为GTK库一部分的绘图区域小部件。我的设置-Windows10-64位-MSYS2/Mingw32-Haskell平台(GHC8.0.1)-cabal版本1.24.0.0-ffmpeg-light-0.12.0-gtk-0.14.6问题要使用GTK渲染视频,我需要为GI安装绑定(bind),所以我尝试安装包'haskell-gi'但由于un

windows - Windows 上的 gtk2hs 无法运行

我在Linux上使用gtk2hs编写了一个小应用程序,它运行良好。后来我尝试在Windows(xp,7)上运行相同的应用程序,但没有成功。我安装了:haskell赢平台gtk2hsallinonebundleinapathwithnospacesandset%PATH%toits/binfoldercabal安装gtk2hs-buildtoolscabal安装gtkghc--make-O2Main.hs而且一切都可以编译和链接。当尝试运行该应用程序时,它说:c:\wordtrend>Main(Main.exe:3228):GLib-GObject-CRITICAL**:gtype.c:

c++ - "COM-like"框架解决了哪些问题?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我经常看到GObject库与类似COM-Windows的解决方案相比,一般来说,我真的不明白这个框架应该解决什么样的问题,以及采用它们有什么好处。我找到了一些小的答案,比如“它是一个可以轻松地将C库移植到其他语言的包装器”,但是GObject还提供了其他功能,比如信号/槽机制,还有其他涉及的东西,但老实说我不明白关于这件事的大局。你能用通俗易懂的英语解释一

c++ - 在 C++ 中实现 GObject 接口(interface)

我尝试使用Glibmm(Gtkmm的一部分)在C++中实现GType接口(interface)。该对象将传递给C中的API。不幸的是,documentation对于gtkmm没有涵盖它如何包装GObject系统的许多细节。我目前拥有的:classMonaCompletionProvider:publicgtksourceview::SourceCompletionProvider,publicGlib::Object{public:MonaCompletionProvider();virtual~MonaCompletionProvider();Glib::ustringget_nam

python - 如何在 pygtk 中创建新信号

我已经创建了一个python对象,但我想在其上发送信号。我让它继承自gobject.GObject,但似乎没有任何方法可以在我的对象上创建新信号。 最佳答案 您还可以在类定义中定义信号:classMyGObjectClass(gobject.GObject):__gsignals__={"some-signal":(gobject.SIGNAL_RUN_FIRST,gobject.TYPE_NONE,(object,)),}元组的内容与gobject.signal_new的最后三个参数相同。

python - 与 main 一起终止 GObject.Mainloop() 线程

我有以下两个线程:myThread=threading.Thread(target=sender.mainloop.run,daemon=True)myThread.start()myThread2=threading.Thread(target=receiver.mainloop.run,daemon=True)myThread2.start()目标是GObject.Mainloop()方法。之后我的主程序陷入无限循环。我的问题是,当执行被CTRL-C终止时,两个线程都会引发键盘异常,但主程序不会终止。有什么想法可以让CTRL-C终止主程序和两个线程吗?

python - 为什么 python gstreamer 在我的脚本顶部没有 "gobject.threads_init()"时崩溃?

我已经编写了一个python脚本来使用gstreamer(pygst和gst模块)来计算重播增益标签,它因各种gobject错误而崩溃。我发现某个地方可以通过将以下样板放在脚本顶部来解决此问题:importgobjectgobject.threads_init()我试过了,成功了。谁能解释为什么这些行是必要的,为什么pygst自己不这样做? 最佳答案 因为,你可以在非线程环境下使用gobject。这并不罕见。在线程环境中使用gobject时,需要通过调用gobject.threads_init()显式初始化。这也将确保在调用“C”函

linux - 我如何找出我的代码在哪里导致 GLib-GObject-CRITICAL?

当C/C++应用程序失败并出现以下CRITICAL时,您能否告诉我如何找出导致错误的代码位置?我曾尝试在调试器中运行它,尝试在程序失败时执行“bt”。但它没有显示导致CRITICAL的代码在哪里:(process:3155):GLib-GObject-CRITICAL**:/build/buildd/glib2.0-2.22.3/gobject/gtype.c:2458:initializationassertionfailed,useIA__g_type_init()priortothisfunction(process:3155):GLib-CRITICAL**:g_once_in

linux - 我如何找出我的代码在哪里导致 GLib-GObject-CRITICAL?

当C/C++应用程序失败并出现以下CRITICAL时,您能否告诉我如何找出导致错误的代码位置?我曾尝试在调试器中运行它,尝试在程序失败时执行“bt”。但它没有显示导致CRITICAL的代码在哪里:(process:3155):GLib-GObject-CRITICAL**:/build/buildd/glib2.0-2.22.3/gobject/gtype.c:2458:initializationassertionfailed,useIA__g_type_init()priortothisfunction(process:3155):GLib-CRITICAL**:g_once_in