问题标签 [pangocairo]

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

cairo - 如何让 Pango Cairo 正确换行?

我在让 Pango Cairo 自动换行时遇到问题。下面是一些演示代码。我将布局的宽度设置为与红色矩形相同,所以我希望它会包裹到红色矩形。实际上,它只是在每一行上放一个单词,就好像宽度设置得非常小一样。如果我使用 pango.WRAP_WORD_CHAR,我只会得到一个字符。

我究竟做错了什么?如何让布局包裹到我指定的宽度?

编辑如果我将宽度设置为 100000,则单词会正确换行。这意味着 set_width 和构造参数使用不同的单位。有任何想法吗?

自动换行

0 投票
1 回答
2652 浏览

android - 为 Android NDK 构建 Pango Cairo

我发现有人为 Android NDK 移植了 Pango Cairo(博客文章源代码)。但是我没有成功编译他的示例项目。有没有人设法这样做并且可以告诉我我做错了什么?

这是我到目前为止所尝试的:

  • git clone --recursive http://dev.laptop.org/git/users/cscott/android-libs/
  • git 由于某种原因找不到 pixman,所以git clone http://cgit.freedesktop.org/pixman/,并移至android-libs/jni/pixman
  • 将android-libs/jni/ 的内容复制到android-libs/examples/java-bitmap/jni(不确定要保留哪个 Android.mk?)
  • 将java-bitmap/jni/Makefile.devel重命名为Makefile
  • 编辑java-bitmap/jni/Makefile如下:NDK=/cygdrive/f/android-ndk-r8b TOOLCHAIN=$(NDK)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin
  • 试图在java-bitmap/jni中运行make

我收到以下错误:

这是 config.h 的片段

0 投票
4 回答
3465 浏览

python - 如何使用pygtk或pango获取系统使用的默认字体?

我有一个使用 pygtk 的字体按钮。最初,我不想设置字体,因为系统将采用默认字体。我的问题是获取系统使用的默认字体的代码行是什么,所以我一开始就保持默认。稍后用户更改字体后,应应用其各自的字体。任何人都可以帮忙吗?

0 投票
4 回答
2182 浏览

c# - 使用 CAIRO 的单个 PDF 中的多个页面?

我正在使用 c# 和 Cairo 创建一个 pdf 文件。我想制作一个多页 pdf,但我找不到任何示例。我只找到了这个: http: //lists.cairographics.org/archives/cairo/ 2008-9月/014949.html

任何帮助或建议将不胜感激。

0 投票
2 回答
2492 浏览

c++ - 如何在 C++ 中将 Cairo 图像表面转换为 opencv Mat

我在 cairomm 库中有一个 cairo 图像表面

Cairo::RefPtr cropSurface = Cairo::ImageSurface::create(Cairo::FORMAT_ARGB32, 宽度,高度);

如何在 C++ 中将其转换为 Opencv Mat?

0 投票
0 回答
349 浏览

unicode - What is the purpose of Default Ignorable Code Points in font rendering?

According to this link, U+00AD is a default ignorable code point.

What exactly is the purpose of these default ignorable code points? What is the harm if I want to render U+00AD ?

The link provides some information, but I am not really clear.

"U+00AD SOFT HYPHEN has a null default appearance: the appearance of ther-apist is simply "therapist"; no visible glyph. In linebreak processing, it indicates a possible intra-word break. At any intra-word break that is used for a line break — whether resulting from this character or by automatic process — a hyphen glyph (perhaps with spelling changes) or some other indication can be shown, depending on language and context."

Please clarify.

0 投票
1 回答
1125 浏览

python - AttributeError:“模块”对象没有属性“cairo_font_map_get_default”

如果我尝试从 cairo 网站运行这个示例,我会得到:

我想我错过了一些包裹?(我在 Ubuntu 14.04 上)

但是,我尝试找到我需要的开发包,我找到的唯一答案是这个,它推荐了 GTK2 堆栈中的一些东西,但如果有的话,我对 GTK3 感兴趣,而不是 2。

0 投票
2 回答
7492 浏览

gtk - GtkWindow 和 GdkWindow 的区别?

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

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

然后,一些功能,如gdk_window_process_updates(..)require 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. 我找不到有关此宏以及如何/何时使用它的任何信息。

0 投票
1 回答
2337 浏览

c - How to use cairo with gtk2 in C?

I have a huge problem with cairo and gtk2. I was following this tutorial: http://zetcode.com/gfx/cairo/cairobackends/ (GTK Window header). Unfortunately nothing appears in the window.

Code from tutorial:

I figured out that I should use "expose_event" istead of "draw", but there is still problem.

I found something like this:

This piece of code works, it draws something. Could you tell me what should I do to have a working functions like in the first example with one where I can put a code I want to draw (something like do_drawing). Thanks in advance.

0 投票
1 回答
1171 浏览

c++ - Pango/Cairo 中的动态文本

我有一种感觉,我可能会错过 Pango 的一些东西。API 中的几乎所有内容似乎都旨在显示静态文本,但在特定位置绘制/移动光标的两个函数除外,这表明可能存在实现编辑文本的内置方法。

例如,要用鼠标标记一个文本块(即更改两点之间的背景颜色),我可以为每次鼠标移动重新生成带有更改标签的文本,或者在 Cairo 中绘制矩形,然后使用 Pango 绘制顶部有透明背景的文本。有没有办法在不重新生成或重绘整个屏幕的情况下将属性应用于范围?

同样,如果我让 Pango 自己绘制光标并处理按键事件,是否有替代重绘整个屏幕的方法?

GtkTextBuffer 不是一个选项 - 我在任何时候都没有所有文本,并且使用紧凑的二进制格式并使用一组不断变化的过滤器来计算需要动态显示的内容要高效得多。除了臃肿、多余和不优雅之外,它还非常缓慢。