标签: pango

Pango-WARNING**:未能选择字体,期望输出难看

我在启动使用Pango库的任何内容时遇到此错误.我正在使用Kubuntu 9.10.我已经在libgtk*libcairo*libpango*和fontconfig上完成了'sudo apt-get --reinstall install',没有运气.

有人能指出我正确的方向吗?谢谢.

gtk fonts pango cairo

19
推荐指数
3
解决办法
4万
查看次数

Windows中GTK-GUI翻译中的非ASCII符号不起作用?

我有一个小的python程序,展示了如何为Linux和Windows翻译GTK(pygobject)GUI.一切都在Linux中工作,但在Windows中,非ASCII符号不会在翻译中呈现.

我假设Glade文件和*.mo文件都被正确解码,因为:

  • 英文界面显示非ASCII符号
  • 英语和翻译都在print-statements中显示非ASCII字符

以下是英文原版中的界面:

在此输入图像描述

并且德语翻译不使用环境变量或PANGOCAIRO_BACKEND=win32:

在此输入图像描述

使用环境变量PANGOCAIRO_BACKEND=fontconfig(PANGOCAIRO_BACKEND=fc)的德语翻译.第一个标签设置为使用Pango使用Calibri.这肯定是Windows上"ö","ä"和"ü"的字体.

在此输入图像描述

在控制台中,此警告出现在翻译中:Pango-Warning **: Invalid UTF-8 string passed to pango_layout_set_text().

这里已经讨论了有关使翻译工作的一些细节:

存储库:

Windows的安装程序:

是否有可能builder.set_translation_domain("pygibank")使用错误的编码推送翻译?有可能调试这个或有没有人知道如何解决这个问题?

python gtk localization pango pygobject

17
推荐指数
1
解决办法
464
查看次数

在开罗的支持下建设Pango

我正在尝试在RHEL5盒子上构建一个新版本的wireshark 1.10,目的是制作一个RPM,以便我支持的客户可以安装它.可能是其他人,如果我能找到一个地方来举办它.

WS1.10依赖于GTK +以及可用rpm包不支持的其他几个库.因此,我必须手工制作它们.GTK +需要pango(1.24.5)和cairo(1.8.8)支持.

从源代码构建并安装了较新版本的cairo之后,pango的./configure会出现以下错误

checking for CAIRO... yes
checking which cairo font backends could be used... none
configure: Disabling cairo support
Run Code Online (Sandbox Code Playgroud)

然后在最后./configure显示

configuration:
        backends: X
Run Code Online (Sandbox Code Playgroud)

我可以通过查看/ usr/local/lib中的pkg_config来验证是否安装了Cairo.
我甚至看过pango config.log.但是我没有看到任何与我上面提到的消息有任何不同之处.

有哪些地方我应该寻找一个不那么简洁的错误信息?我对此进行故障排除有点不知所措.

linux gtk pango rhel5 cairo

15
推荐指数
1
解决办法
1万
查看次数

包裹在pango的词用混杂的脚本

我有一个使用pango的文本框实现.如果我把一个以从右到左的脚本开头的字符串,后跟一个空格,然后是从左到右的脚本中的单词,那么pango使用的自动翻译就会搞砸(使用PANGO_WRAP_WORD_CHAR).对于字符串العربيةENGLISH,我得到以下内容:

不好的词包装

如果我U+200F在空格后添加unicode字符,那么我得到预期的自动换行:

预期自动换行

另外,如果我用印地语替换上面的阿拉伯语脚本(从左到右,就像它旁边的英语​​一样),那么我仍然会遇到问题,所以它似乎不是严格的从左到右,对吧到左边的东西.在印地语的情况下,我放入一个hack,0x200E在空格后插入一个解决问题的空间.

这是pango中的一个错误吗?是否有我可以尝试的解决方案,足以解决问题而不打破其他情况?目前我正在使用基于字符串中前一个强定向字符的方向在每个空格中插入0x200E或插入0x200F,但我不确定是否存在某些字符串会导致问题.

更新:我能够使用gedit在Ubuntu 12.04上重现此问题(启用文本环绕并且启用两行设置时不执行拆分).我简单地输入Hello world一遍又一遍,直到它包裹好几次,然后替换的所有实例world????????,一切晕倒一行.

unicode text pango arabic unicode-string

12
推荐指数
1
解决办法
452
查看次数

GtkWindow和GdkWindow之间的区别?

在我的Gtk-Gdk-Cairo-Pango应用程序的开头,我创建了窗口:

GtkWidget   *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
Run Code Online (Sandbox Code Playgroud)

首先,有GtkWindow,但gtk_create_window返回GtkWidget,不是GtkWindow,为什么?

然后,一些功能,如gdk_window_process_updates(..)要求GdkWindow*.

gtk_window_set_geometry_hints()另一方面要求GtkWindow*.

在文档中也GdkWindow* gdk_window_new()有返回GdkWindow.

当然有文件说:

GdkWindow是屏幕上的矩形区域.它是一个低级对象,用于在GTK +级别实现高级对象,如GtkWidget和GtkWindow.GtkWindow是一个顶层窗口,用户可能会认为它是一个带有标题栏的"窗口"等等; 一个GtkWindow可能包含许多GdkWindow.

但它仍然没有告诉我,何时以及为什么我应该创建Gtk或Gdk窗口?这里的模式是什么?

现在你问,我想解决什么特别的问题?当然,我尝试在gtk + gdk之上使用cairo + pango在鼠标移动后立即绘制文本.问题是虽然实际绘图似乎表现得很快,但我无法像鼠标移动那样完成它.在我motion_notify_event刚刚调用的gtk_widget_queue_draw(GtkWidget)时候,实际鼠标在屏幕上移动有明显的滞后,即使我绘制单个字符,它在移动阶段也没有与鼠标指针对齐,只在鼠标停止后捕获它.

我尝试的是通过调用加速更新gdk_window_process_updates(GDK_WINDOW(window), false);,编译器吃它,但我得到了运行时断言:Gdk-CRITICAL **: gdk_window_process_updates: assertion 'GDK_IS_WINDOW (window)' failed.我找不到有关此宏的任何信息以及如何/何时使用它.

包括

#include <gtk/gtk.h>
#define TXT "1234567890"
int X = 0, Y = 0;
static void do_drawing(cairo_t *);
GtkWidget *window; …
Run Code Online (Sandbox Code Playgroud)

gtk pango cairo gdk pangocairo

11
推荐指数
1
解决办法
4727
查看次数

Gnuplot PDF 终端在 Mac 上显示字体问题

出乎意料的是,我的 Gnuplot 开始出现pdfcairo终端问题。生成的 PDF 文件中的字体被卡住,就好像单个字符的宽度设置为零一样。我在 Mac OS 上使用 Gnuplot 5.2.7,通过自制软件安装。

在这里,一个最小的不工作的例子:

reset
set terminal pdfcairo
set output "mnwe.pdf"
set xlabel "Time t"
set ylabel "sin(t)"
plot [0:2*pi] sin(x) with lines notitle
Run Code Online (Sandbox Code Playgroud)

产生以下输出:

在此处输入图片说明

我怀疑字体问题是在最近更新到补丁级别 7 之后发生的。我的 Ubuntu 机器上的 Gnuplot 5.2.2 按预期工作,并为相同的 Gnuplot 脚本生成以下输出:

在此处输入图片说明

不幸的是,似乎不可能使用自制软件恢复到以前的 Gnuplot 版本。

我确认epscairopngcairo终端在使用 Gnuplot 5.2.7 的 Mac 上按预期工作,因此问题仅在于pdfcairo终端。
编辑:事实上,该错误也影响了其他位于开罗的终端。不知道我第一次检查时做错了什么。

我将不胜感激有关如何解决此问题的任何指示。

macos homebrew gnuplot pango

11
推荐指数
2
解决办法
2307
查看次数

如何在Pango标记中转义字符?

我的程序有一个gtk.TreeView显示一个gtk.ListStore.在gtk.ListStore包含这样的字符串:

"<span size='medium'><b>"+site_title+"</b></span>"+"\n"+URL
Run Code Online (Sandbox Code Playgroud)

URL(显然)URL字符串在哪里.有时会有字符URL导致pango无法解析标记.

有没有办法逃脱URL作为一个整体,以便pango将忽略它,所以它将按字面显示?如果没有,我应该如何"逃避"URL中的特殊字符?

python gtk pygtk pango

10
推荐指数
2
解决办法
3262
查看次数

Libtool认为"图书馆被移动"但事实并非如此

我目前正在从源代码重新编译gtk +和依赖项(我没有其他选择).

我的所有自定义软件包都安装在一个特定的自定义点(让我们称之为/packages)(它看起来很奇怪,但这一次,我别无选择).

当我尝试重新编译pango时,它需要freetype.Freetype的已安装/packages/freetype/2.1.10/amd64-linux (LIB,包括......在此目录)和不同的配置路径设置(LD_LIBRARY_PATH,LIBRARY_PATH,CPLUS_INCLUDE_PATH,INCLUDE_PATH,PKG_CONFIG_PATH).pango配置运行良好.它找到freetype并生成Makefile.当我尝试制作时,我收到以下错误:

libtool: link: warning: library `/packages/freetype/2.1.10/amd64-linux//lib/libfreetype.la' was moved.
grep: /usr/local/lib/libfreetype.la: No such file or directory
Run Code Online (Sandbox Code Playgroud)

libtool我的lib有问题(但libfreetype.la存在于目录中,/packages/freetype/2.1.10/amd64-linux//lib/并且没有访问问题).所以libtool试图在"经典地方"中/usr/...找到它并且找不到它.

一开始,我认为libtool与两个斜杠混淆(可能是由于在编译freetype期间--prefix标志中的错误)所以我确实重新编译了没有拼写错误的freetype但它没有改变任何东西.

有人有意帮助我吗?我以前从未在我的个人项目中使用过libtool所以我不知道是否有办法解决这种奇怪的行为...(这可能无关紧要,但libtool是版本1.5.22)

提前致谢.

gtk x86-64 pango freetype libtool

10
推荐指数
1
解决办法
8890
查看次数

寻找支持对齐属性,多个span或div元素,多列的OSD

请告诉我是否有用于Xorg/Linux平台的OSD 屏幕显示程序技术,它可以以比pango更丰富的方式呈现XML,至少支持align属性和多个span或div元素,因此它可以显示多个列.

例如chipmunkav osd

到目前为止我检查了什么:

  • gnome-osd-client呈现XML,但gnome-osd-client提供非常简单的XML pango

  • osd_cat但它不带任何XML.

  • navit有一些使用osd的OSM数据XML,但难以理解.

如果没有这样的osd程序,请告诉我

  • 具有不同后端支持的HTML渲染器可以编程为使用OSD显示.

  • 来自在后端使用osd的其他现有包(如navit)的相关源可用于呈现此类XML.

我的问题是我实际上使用了pango,但它不够灵活,无法满足我在多列中显示XML的需求.

user-interface gnome renderer pango xlib

10
推荐指数
0
解决办法
230
查看次数

如何使用pycairo创建字母间距属性?

我正在使用Pango + Cairo(通过GObject)使用python3.7渲染文本,并想通过创建属性并将该属性附加到我的pango布局来设置字母间距

在pango的gnome文档中,我可以看到应该有一个名为pango_attr_letter_spacing_new(自v1.6起)的函数。但是,如果运行,则会Pango.attr_letter_spacing_new出现错误:

AttributeError: 'gi.repository.Pango' object has no attribute 'attr_letter_spacing_new'
Run Code Online (Sandbox Code Playgroud)

感觉有点奇怪,因为我可以使用pango_attr_type_get_name从v1.22开始才应该提供的。

我可以通过使用标记来解决,<span letter_spacing="1234">但是我不想走这条路。

最小的“工作”示例

AttributeError: 'gi.repository.Pango' object has no attribute 'attr_letter_spacing_new'
Run Code Online (Sandbox Code Playgroud)

手动创建LetterSpacing属性

我已经能够找到enum值Pango.AttrType.LETTER_SPACING,这使我可以执行以下操作:

c = Pango.AttrClass()
c.type = Pango.AttrType.LETTER_SPACING
a = Pango.Attribute()
a.init(c)
Run Code Online (Sandbox Code Playgroud)

但是,我一直无法找到一种方法来设置它的值,这让我觉得这是错误的处理方法:|

将此插入到中Pango.AttrList,给了一个错误(不足为奇),并且下次我对Pango进行操作时使python进程出现段错误:

** (process:17183): WARNING **: 12:00:56.985: (gi/pygi-struct-marshal.c:287):pygi_arg_struct_from_py_marshal: runtime check failed: (g_type_is_a (g_type, G_TYPE_VARIANT) || !is_pointer || transfer == GI_TRANSFER_NOTHING)
Run Code Online (Sandbox Code Playgroud)

其他线索

..可悲的是无处可去:(

python pango pygobject

9
推荐指数
1
解决办法
167
查看次数