问题标签 [pango]
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.
cairo - Pango 无法使用 librsvg 找到字体
我正在使用 librsvg 将 SVG 文件渲染到 Cairo 上下文。之后,我使用 Pango 在顶部“手动”渲染一些文本。
渲染 SVG 时,我收到 Pango 警告说它无法加载字体:
"couldn't load font "'Calibri' Not-Rotated 16", falling back to "Sans Not-Rotated 16", expect ugly output."
之后通过 Pango 进行的手动文本渲染工作得非常好。我尝试了多种不同的字体系列,它们都渲染得很好,没有任何警告。
我什至浏览了 librsvg 源代码以了解它是如何使用 Pango 的,但我看不出与我所做的任何重大差异。
我不知道如何继续调试这个问题,任何关于 Pango 如何在 Windows 下定位字体以及可能影响其查找字体能力的建议都非常感谢。
如果这很重要:
我从这里下载了所有需要的二进制文件:http: //sourceforge.net/projects/ezwinports/files/
gtk - 获取适合 Pango 布局的最大文本行数?
我在 GTK 窗口内的 Cairo 上下文中使用 Pango。如何计算该区域内可以容纳多少文本行和列?
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
. 我找不到有关此宏以及如何/何时使用它的任何信息。
python - GTK3,Pango - 在TextView中将混合大小写文本呈现为大写?
呈现文本的最有效方法是什么,在TextBuffer
任何情况下都可能是大写的 a TextView
?
它不适用于整个文本,仅适用于其中的特定样式 - 并且需要保留该部分的原始大写,以防用户将文本样式更改回非大写样式。
因此,如果文本的相关部分可以用一个TextTag
理想的标记来标记,但没有完全大写的标记(有一个 small_caps 字体变体,由于某种原因,它似乎在 textview 中不起作用) -可以创建一个自定义的 TextTag 属性,如“all_caps”,如果可以,它将如何实现?
其他想法会覆盖 textview 绘制功能(听起来很痛苦)或可能创建辅助TextBuffer
并动态更改文本大小写?
更新:
对于这个应用程序,最好的方法可能是截取Pango
从TextBuffer
(from TextView
's do_draw
,我认为) 传递给的字符串并即时更改它:对于此应用程序中的其他文本样式,需要添加一些额外的文本字符 (这是一个编剧应用程序,所以有一个“Parenthical”风格,不出所料,它总是包含在括号中——这些应该作为风格的一部分添加,而不是依赖于用户添加它们)
所以更新的问题是:一个子类/猴子代码/某物//Pango
如何拦截传递给(连同它的)的字符串,以便根据其样式更改/添加它?PangoCairo
Gtk+ 3
Pango
TextTags
TextTag
ruby - 潘戈+开罗;是否有现有的方法来处理文本中的样式标签?
Pango 语法支持一些纯文本标记。据我所知,这也没有扩展到嵌入图像。
环顾四周,我找不到太多现有实现的方式,但我之前没有做过 pango+cairo 的工作,所以我可能会错过明显的社区。
据我所知,一种合理的方法是分析一个字符串,提取任何标签,创建 cairo 图像,然后相应地修改它们周围的 pango 布局。
这似乎也有人可能以前做过。
我专门寻找这些问题的答案:
- pango+cairo 是否已经解决了这个问题,而我只是误读了文档?
- 以前有过这样的事情吗,参考文献在哪里?
- 这是一种合理的方法,还是我应该尝试其他方法,以及什么?
(还要注意我使用的是 ruby,所以这可能会影响我的选择)
gtk - 如何使用 Pango 在 Clutter.Text 中设置行高
我想要一个Clutter.Text 使用 Gtk.Pango显示具有双行距的文本。
注意:在 css 中,我们会使用
line-height: 200%
I think。
我尝试了这段代码,但它没有用:
显然,Clutter.Text
保留了Pango.Layout的缓存版本
有没有办法做到这一点?
freetype - undefined reference to `hb_ft_font_create' on linux
When compiling pango I get this error:
I've compiled freetype and harfbuzz; also I pass -lfreetype
and -lharfbuzz
in LIBS
variable.
utf-8 - Pango 选择多种字体
我想在我的 pango 软件中使用三种字体:
- 字体 1:拉丁文、Crylic 字符
- Font2:韩文字符
- Font3:日文字符
Pango 正确渲染文本,但我想选择一种字体
有什么方法可以表明这种偏好 pango 字体?
我使用:linux和pango 1.29