精华内容
下载资源
问答
  • Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+3 in the same process is not support报错:形式1:形式2:原因报错的一般复现解决方案参考文献 程序员遇到这种环境问题的时候前列腺都不好, ...

    Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+3 in the same process is not support


    程序员遇到这种环境问题的时候前列腺都不好, 记录一下, 方便以后回查~


    报错:

    报错有两种形式

    形式1:

    Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+3 in the same process is not support
    

    形式2:

    Gtk-Message: 18:20:57.303: Failed to load module "canberra-gtk-module"
    

    原因

    一般原因:
    python 里 matplotlib 的 gtk使用版本(TK3AGG)与系统后端默认(一般是TKAGG)的gtk版本不一样,有时候就算你没用上import matplotlib包,opencv或者别的什么包也用到了, 一样报错, 其直接结果就是imshow没有图片。

    本人原因:
    我的情况是我写的rospy节点里面用到了opencv-python, ros节点在后面运行的时候, 其它用c++写的节点在使用cv::imshow()的时候运行报错程序而且程序还不崩只是没有图片。

    报错的一般复现

    下面脚本可以简单检查自己是否有这种版本冲突的问题:

    import cv2
    import matplotlib.plot as plt 
    cv2.namedWindow("test")
    

    解决方案

    这里我使用这个方案, 因为别的像 重新编译opencv, 太头大了:
    命令行输入:

    quit()
    

    会显示一个文件:

    /etc/matplotlibrc
    

    接着命令行输入,

    sudo gedit /etc/matplotlibrc
    

    会出现这么个文件

    ### MATPLOTLIBRC FORMAT
    
    # This is a sample matplotlib configuration file - you can find a copy
    # of it on your system in
    # site-packages/matplotlib/mpl-data/matplotlibrc.  If you edit it
    # there, please note that it will be overwritten in your next install.
    # If you want to keep a permanent local copy that will not be
    # overwritten, place it in the following location:
    # unix/linux:
    #     $HOME/.config/matplotlib/matplotlibrc or
    #     $XDG_CONFIG_HOME/matplotlib/matplotlibrc (if $XDG_CONFIG_HOME is set)
    # other platforms:
    #     $HOME/.matplotlib/matplotlibrc
    #
    # See http://matplotlib.org/users/customizing.html#the-matplotlibrc-file for
    # more details on the paths which are checked for the configuration file.
    #
    # This file is best viewed in a editor which supports python mode
    # syntax highlighting. Blank lines, or lines starting with a comment
    # symbol, are ignored, as are trailing comments.  Other lines must
    # have the format
    #    key : val # optional comment
    #
    # Colors: for the color values below, you can either use - a
    # matplotlib color string, such as r, k, or b - an rgb tuple, such as
    # (1.0, 0.5, 0.0) - a hex string, such as ff00ff - a scalar
    # grayscale intensity such as 0.75 - a legal html color name, e.g., red,
    # blue, darkslategrayGTKAgg GTKCairo GTK3Agg GTK3Cairo
    # MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG
    
    #### CONFIGURATION BEGINS HERE
    
    # The default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo
    # MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG
    # Template.
    # You can also deploy your own backend outside of matplotlib by
    # referring to the module name (which must be in the PYTHONPATH) as
    # 'module://my_backend'.
    #
    # If you omit this parameter, it will always default to "Agg", which is a
    # non-interactive backend.
    backend      : GTKAgg
    
    # If you are using the Qt4Agg backend, you can choose here
    # to use the PyQt4 bindings or the newer PySide bindings to
    # the underlying Qt4 toolkit.
    #backend.qt4 : PyQt4        # PyQt4 | PySide
    
    # Note that this can be overridden by the environment variable
    # QT_API used by Enthought Tool Suite (ETS); valid values are
    # "pyqt" and "pyside".  The "pyqt" setting has the side effect of
    # forcing the use of Version 2 API for QString and QVariant.
    
    # The port to use for the web server in the WebAgg backend.
    # webagg.port : 8888
    

    把 GTKAgg改成GTKAgg GTKCairo GTK3Agg GTK3Cairo MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG中的一个, 这个GTKAgg应该是gtk+2.0, 可以改成GTK3Agg, 由于在jetson板子上问题的原因可能多种多样这里建议使用QT5Agg。因为python2 pip 好像已经不支持QT4了, 所以还没安装的话只能下载QT5。

    x86架构下

    pip install PyQt5
    

    Arm架构下(jetson)

    sudo apt-get install qt5-doc qt5-doc-html qtbase5-doc-html qtbase5-examples -y
    

    保存以后问题的复现就没有了。

    另外多提一句:
    如果是在x86架构下(就是我们正常的电脑)其实可以降opencv-python的版本

    pip install opencv-python==3.4.0
    

    或许可行, 但是我仔细想想可能不够稳。

    另外:

    千万别神经刀删除GTK 比如 sudo apt-get purge gtk2.0-dev && sudo apt-get autoremove 那你的环境基本凉了, 因为你见到的很多基础的视觉库都是基于GTK这个基础的可视化包依赖来开发的,系统会删除使用GTK为依赖的所有库。

    参考文献

    非常非常感谢这几个链接
    https://github.com/opencv/opencv/issues/6680
    https://github.com/yosinski/deep-visualization-toolbox/issues/10
    https://www.cnblogs.com/longwhite/p/10397754.html

    正是同行的分享才可以让很多问题变得方便。

    祝, 武运昌隆~

    展开全文
  • GTK+ 参考手册 for GTK+ 2.14.3,最新英文版 GTK+ is a library for creating graphical user interfaces. It works on many UNIX-like platforms, Windows, and on framebuffer devices. GTK+ is released under ...
  • GTK+GTK+的简介、安装、使用方法之详细攻略 目录 GTK+的简介 GTK+的安装 GTK+的使用方法 GTK+的简介 GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发、跨平台的图形工具包。最初是为GIMP写的,...

    GTK+:GTK+的简介、安装、使用方法之详细攻略

     

     

    目录

    GTK+的简介

    GTK+的安装

    GTK+的使用方法


     

     

     

    GTK+的简介

            GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发、跨平台的图形工具包。最初是为GIMP写的,已成为一个功能强大、设计灵活的一个通用图形库,是GNU/Linux下开发图形界面的应用程序的主流开发工具之一。并且,GTK+也有Windows版本和Mac OS X版。

            GTK+ 是一种图形用户界面GUI工具包。也就是说,它是一个(或者,实际上是若干个密切相关的库的集合),它支持创建基于 GUI 的应用程序。可以把 GTK+ 想像成一个工具包,从这个工具包中可以找到用来创建 GUI 的许多已经准备好的构造块。差不多已经 10 年过去了。今天,在 GTK+ 的最新稳定版本 —— 2.8 版上(3.0测试中),仍然在进行许多活动,同时,GIMP 无疑仍然是使用 GTK+ 的最著名的程序之一,不过它已经不是惟一的使用 GTK+ 的程序了。已经为 GTK+ 编写了成百上千的应用程序,而且至少有两个主要的桌面环境Xfce 和 GNOME)用 GTK+ 为用户提供完整的工作环境。

            GTK+虽然是用C语言写的,但是您可以使用你熟悉的语言来使用GTK+,因为GTK+已经被绑定到几乎所有流行的语言上,如:C++,PHPGuile,PerlPython, TOM, Ada95Objective C, Free Pascal, and Eiffel

    GTK 官网:https://www.gtk.org/
    GTK-Project:https://www.gtk.org/download/index.php

     

    GTK特点

    • 现代化、更新快:GTK+ 是采用软件开发中的最新技术开发的,只要发现缺陷(BUG)(肯定有缺陷,因为没有任何软件是完美的),开发人员就会尽力在下一版本中修补缺陷。使用现代的软件意味着,您不会陷在过时的工作中,而跟不上时代的发展。
    • 国际化、可访问性:在创建要让所有人使用的软件的时候,请记住三个关键字:国际化、本地化和可访问性(通常分别缩写为 i18n、l10n 和 a11y)。
    • 简单易用:这一点应当很明显,但是它实际上含义丰富。工具包对用户应当容易,这样才有可能创建简单的、直觉的和乐于使用的界面,哪怕针对的是新手。创建人机交互的正确模型不是一项简单的任务,GTK+ 正是长时间工作的结果,而且是众多的甚至困难的决策的结果。
    • 设计灵活、可扩展:编写 GTK+ 的方式允许在不扭曲基本设计的情况下,让维护人员添加新功能、让用户利用新功能。工具包也是可扩展的,这意味着可以向其中添加自己的块,并用使用内置块一样的方式使用它们。例如,可以编写自己的控制元素,比如说用于显示应用程序处理的科学数据,并让它正确地遵照用户选择的显示风格,就像 GTK+ 自身的控件那样。
    • 自由、开放:自由软件 意味着每个人不仅可以自由地获得和使用这个工具包,还可以在满足某些条件的情况下修改并重新发布它。自由开放源码许可 意味着这些条件不是严格限制的,可以得到的自由程度是显著的。
    • 可移植:GTK+ 是可移植的。这意味着用户可以在许多平台和系统上运行它。另一方面,开发人员可以把软件提供给众多用户,却只要编写一次程序,还可以使用许多不同的编程和开发平台、工具和编程语言。所有这些都可以理解为更多的潜在用户,您可以利用更好地满足需求的更广泛的技能和工具。

     

    GTK+的安装

    第一步,下载GTK+,GTK+ for Windows
            地址01:win32版本,https://gtk.en.softonic.com/
            地址02:https://sourceforge.net/projects/gtk-win/
            地址03:http://gladewin32.sourceforge.net/

    第二步,软件安装的时候,一般会自动加载。也可以手动加载,将其中bin文件夹,加入进系统环境变量,  D:\Program Files\gdk_2.14.6-1_win32\bin


    第三步,在cmd中运行: pkg-config –cflags gtk+-3.0 
    第四步,import cairocffi as cairo ,发现不会报错

     

     

    GTK+的使用方法

    后期更新……

    1、推荐几篇文章

    GTK+入门教程
    GTK+ 3 基础知识学习​​​​​​​

     

     

    参考文章
    百度百科—gtk

     

     

     

    展开全文
  • Gtk-ERROR **: 20:46:55.938: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported 求解
    Gtk-ERROR **: 20:46:55.938: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
    

    求解

    展开全文
  • 尖端的GTK + 2面板不会重塑方向盘:主要目标是提供一种面板,以明显的方式重复使用所有可用的面板(如果不过度使用的话)。 除GTK +外,所有依赖项都是(希望是)可选项。
  • GTK+系列---关于GTK+

    2019-01-22 15:30:51
    什么是GTK+GTK+或GIMP工具包是用于创建图形用户界面的多平台工具包。GTK+提供了一套完整的构件(widget),适用于从小型一次性工具到完整的应用程序套件等项目。GTK+是跨平台的,并且拥有易于使用的API,从而...

    什么是GTK+?

    GTK+或GIMP工具包是用于创建图形用户界面的多平台工具包。GTK+提供了一套完整的构件(widget),适用于从小型一次性工具到完整的应用程序套件等项目。GTK+是跨平台的,并且拥有易于使用的API,从而加快了您的开发时间。GTK+是用C语言编写的,但它是从底层设计的,支持各种各样的语言,而不仅仅是C/C++。使用来自Perl和Python等语言(尤其是与Glade GUI Builder结合使用)的GTK+提供了快速应用程序开发的有效方法。

    许可限制

    GTK+是免费软件,也是GNU项目的一部分。GTK+的许可条款GNU LGPL,允许所有开发人员使用它,包括那些开发商业软件的人,任何人都不需要许可费或版税。

    稳定性

    GTK+已经开发了十多年,能够为您的应用程序开发提供诱人的功能和卓越的性能。GTK+得到了大量开发人员的支持,并拥有Red Hat、Novell、Lanedo、Codethink、Unless Mobile和Intel等公司的核心维护人员。

    跨平台

    最初,GTK+是为X窗口系统开发的,但随着时间的推移,它已经增加了对其他知名窗口系统的后端支持。今天您可以在以下位置使用GTK+:

    语言绑定

    由于可用的语言绑定,GTK+可用于许多其他编程语言。这使得GTK+成为应用程序开发非常有吸引力的工具包。

    语言绑定(或“包装器”)允许从其他编程语言使用GTK+,使用这些语言的样式。它们相对容易创建,因为GTK+设计时考虑了它们。官方的GNOME绑定遵循GNOME发布计划,保证API的稳定性和基于时间的发布。

     适应性

    GTK+满足了当今开发人员在工具包中寻找的许多功能,包括:

    • 本土化的外观和感觉
    • 主题支持
    • 线程安全性
    • 面向对象方法
    • 国际化
    • 本土化
    • 可访问性
    • 双向文本支持(从左向右/从右向左)
    • UTF8支持
    • 文档

    接口 

    GTK+有一个核心构件和接口的综合集合,可在应用程序中使用。

    • 窗口(普通窗口或对话框、关于和助手对话框)
    • 显示(标签、图像、进度栏、状态栏)
    • 按钮和切换(复选按钮、单选按钮、切换按钮和链接按钮)
    • 数字(水平或垂直缩放和数值调节按钮)和文本数据输入(有或无完成)
    • 多行文本编辑器
    • 树、列表和图标网格查看器(具有可自定义的渲染器和模型/视图分离)
    • 组合框(带或不带条目)
    • 菜单(带图像、单选按钮和复选项)
    • 工具栏(带有单选按钮、切换按钮和菜单按钮)
    • GTKbuilder(从XML创建用户界面)
    • 选择器(颜色选择、文件选择器、字体选择)
    • 布局(列表构件、表格构件、扩展器构件、框架、分隔符等)
    • 状态图标(Linux上的通知区域,Windows上的托盘图标)
    • 打印构件
    • 最近使用的文档(菜单、对话框和管理器)

    基础

    GTK+是建立在glib之上的。glib提供了应用程序中常见的基本算法语言构造。此库具有以下功能:(此列表不是综合列表)

    • 对象和类型系统
    • 主循环
    • 动态加载模块(即插件)
    • 线程支持
    • 定时器支持
    • 内存分配器
    • 线程队列(同步和异步)
    • 列表(单链接、双链接、双端)
    • 哈希表
    • 数组
    • 树(n元和二进制平衡)
    • 字符串实用程序和字符集处理
    • 词汇扫描器和XML解析器
    • base64(编码和解码)

    移动设备支持

    gmae(gnome mobile&embedded)倡议推动了gnome组件作为移动和嵌入式用户体验平台的使用、开发和商业化。它汇集了行业领导者、专家顾问、关键开发人员以及他们所代表的社区和行业组织。因此,GTK+具有与移动和嵌入式平台需求相关的功能。在过去几年中,GTK+参与了多项嵌入式计划,包括:

    起源 

     GTK+最初是为GNU图像处理程序gimp开发和使用的。它被称为“gimp工具包”(The GIMP ToolKit),以便记住项目的起源。今天,它通常简称为GTK+,被大量应用程序使用,包括GNU项目的GNOME桌面。Peter Mattis在Spencer Kimball和Josh Macdonald的帮助下开始了这一切。Marius Vollmer教我们如何使GTK+用于语言绑定。LarsHamann和StefanJeske为核心构件添加了各种特性。CarstenHaitzler设计并完成了主题支持的第一个实现。Shawn Amundson发布了GTK+1.0和GTK+1.2的管理。

    体系结构

    随着时间的推移,GTK+团队已经将GTK+建立在四个库的基础上:

    • GLib,构成GTK+基础的低级核心库。它为C提供数据结构处理,可移植性封装和接口,用于事件循环、线程、动态加载和对象系统等运行时功能。
    • Pango,用于布局和呈现强调国际化的文本的库。它构成了GTK+文本和字体处理的核心。
    • Cairo,支持多个输出设备(包括x window系统、win32)的二维图形库,同时在所有媒体上生成一致的输出,同时利用可用的显示硬件加速。
    • ATK,用于提供可访问性的一组接口的库。通过支持ATK接口,应用程序或工具包可以与屏幕阅读器、放大镜和其他输入设备等工具一起使用。

     

     

    展开全文
  • 环境:Ubuntu18.04 pycharm pip安装的opencv4.3.0.36 问题:一使用cv2.imshow... Using GTK+ 2.x and GTK+ 3 in the same process is not supported 输入 pkg-config --libs gtk+-3.0 输出结果: -lgtk-3 -lgd
  • GTK+ Reference Manual for GTK+ 2.12.8 GTK+ 参考手册 英文版
  • Windows的静态Gtk +库。
  • 第一部分为第1章至第5章,主要讲述基础的GTK+2.0编程、GTK+2.0中的常用控件的使用方法、常用的GTK+2.0编程技巧及其综合应用等,是初学者入门的导引; 第二部分为第6章到第11章,是前一部分的提高和扩展。主要讲述...
  • gtk+开发工具gtk+开发工具gtk+开发工具
  • OPENCV ERROE **: 02:07:27.741:GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported Ubuntu 和 cmake 环境下,使用opencv时报错 ERROE **: 02:07:27.741:GTK+ 2.x ...
  • 使用IOStream样式代码创建GTK +接口。 简单快捷! 还提供简单的数据绘图(类似于Matlab / Octave),ORB(对象请求代理)和神经网络计算。 您可以用几行代码创建GTK + GUI。 标签<<“感谢阅读”; (HBox <
  • 学习使用GTK+ 2.GTK+“Hello World”——对GTK+运作机制的通俗介绍 最后的叶子学习使用GTK+ 系列的第 3 篇 (本系列共6篇)学习使用GTK+学习使用GTK+ 0.概述学习使用GTK+ 1.构建GTK+编译环境学习使用GTK+ 2....
  • 参考:https://blog.csdn.net/u010168781/article/details /81302989 ...重新安装opencv3.4,在编译时选择GTK版本为 GTK+2 使用cmake命令行:-DWITH_GTK_2_X=ON 直接从原文的这一步开始: 在build文...
  • Linux C编程-GTK+ 2.0 中文教程/使用GTK+ GNOME库 gtk开发可以看看 讲的比较详细 有例子可以参考
  • GTK+简介GTK 最初为GIMP(一个图像处理软件,类似Photoshop)的工具包 后来GTK重写为面向对象的GTK+GTK+ 并非是用C++写的,而是用C语言,所谓的面向对象是用C语言模拟的。强大 GTK+ 2.0 新特性: 使用Pango(a ...
  • 压缩包包含gtk+-bundle_2.24.10-20120208_win32文件和gtk+ Visual Studio 2008环境搭建文档说明
  • GTK+

    2012-06-30 08:29:44
    GTK+(GIMP Toolkit)是一套跨多种平台的图形工具包,按LGPL许可协议发布的。虽然最初是为GIMP写的,但目前已发展为一个功能强大、设计灵活的一个通用图形库。特别是被GNOME选中使得GTK+广为流传,成为Linux下开发图形...
  • GTK+3.0相较与GTK+2.0下创建盒的变化

    千次阅读 2018-10-25 10:17:45
    在学习使用Glade软件创建盒的过程中,发现GTK+3.0已经取消了gtk_hbox_new()和gtk_vbox_new(),只需要在常规选项里面修改横向和垂直即可。但为了弄懂GTK+3.0与GTK+3.0的不同,还是查阅了一些资源,主要区别如下: 一...
  • GTK+重拾--07 GTK+中的事件

    千次阅读 2015-12-15 17:47:03
    (一):写在前面在这一个小节中,我们主要是学习GTK+2.0中最重要的部分,就是信号和事件。GTK+函数工具库是基于“事件”系统的。所有的GUI应用都是基于“事件”驱动的。如果没有“事件”发生,那么应用程序就无法...
  • 注意:这些说明适用于希望基于GTK+开发应用程序的开发人员,而不适用于终端用户。 必要条件 Windows版本:GTK+需要Windows 7或更高版本。对于旧版本的Windows,您应该自定义构建旧版本的glib和gtk+。 我的安装...
  • gtk+-bundle_2.18.7-20100213_win32 gtk+-bundle_2.18.7-20100213_win32
  • Using GTK+ 2.x and GTK+ 3 in the same process is not supported 解决方式: 第一种: OpenCV 编译时,使用cmake命令补充行:-DWITH_GTK_2_X=ON 第二种: import matplotlib matplotlib.use('Agg') # ...
  • 初学gtk+一例,只是一个简单的例子,可以帮助初学者掌握gtk+的编码结构
  • GTK+编程入门(2)—GTK+程序结构

    千次阅读 2015-08-02 12:52:10
    GTK+编程入门(2)—GTK+程序结构(2015-7-23)分类:GTK+  现在是晚上,快到睡觉时间了。把这小节完整看完是不可能了,索性就先开个头。这节的内容是通过一个最简单的GTK+程序的分析来了解GTK+程序的基本结构。   ...
  • 学习使用GTK+ 系列的第 2 篇 (本系列共7篇)学习使用GTK+学习使用GTK+ 0.概述学习使用GTK+ 1.构建GTK+编译环境学习使用GTK+ 2.GTK+“Hello World”——对GTK+运作机制的通俗介绍学习使用GTK+ 3.使用GtkBuilder、...
  • 为了了解如何在gtk+环境下绘图,必须先了解gdk+ widget 绘制的基本过程和原理。
  • 学习使用GTK+ 1.构建GTK+编译环境 最后的叶子学习使用...使用GtkBuilder、界面设计器Glade和其他GTK+组件学习使用GTK+ 4.GTK+常用物件及API(窗口)学习使用GTK+ 5.GTK+常用物件及API(文本) 这一部分介绍的

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,905
精华内容 30,762
关键字:

GTK+