gpt4 book ai didi

label - 强制 GtkLabel 裁剪其居中对齐的文本

转载 作者:行者123 更新时间:2023-12-04 15:29:50 29 4
gpt4 key购买 nike

我有一个 GtkLabel无论文本比标签短还是长,其文本都将保持居中。

例如,具有 SS_CENTER 的 Win32 静态控件样式标志集的行为如下:

             ┌===========================┐
│ Lorem ipsum dolor │
└===========================┘

— when the text is shorter than the control;

             ┌===========================┐
Lorem ipsum│dolor sit amet, consectetur│adipiscing
└===========================┘

— when the text is longer than the control.



注意:用户看到的文本的唯一部分是在框架内。

我期待 GtkLabel -s 做同样的事情,但实际上它们以不同的方式呈现居中文本:

             ┌===========================┐
│ Lorem ipsum dolor │
└===========================┘

— when the text is shorter than the control;

             ┌===========================┐
│Lorem ipsum dolor sit amet,│consectetur adipiscing
└===========================┘

— when the text is longer than the control.



如何在 GtkLabel 中制作居中文本即使很长也保持居中?

以防万一:用户看到的实际文本以 ~4 FPS 更新,并且在运行之前未知。

最佳答案

这可能是可行的,但从用户体验的角度来看,显示句子的半随机部分并没有真正意义。

也许看看 gtk_label_set_ellipsize ?
他们使用 PangoEllipsizeMode 告诉要隐藏句子的哪一部分。然后您可以隐藏标签的开头、中间或结尾部分。不过,它是一个枚举,而不是一个标志,因此您将无法隐藏开头 + 结尾以仅显示中间部分。

所以我看到的可能解决方案是:

  • 子类 GtkLabel 并自己绘制,可能与 PangoCairo 一起绘制
  • 或者在 GTK+ 中添加新的 wrap 模式并实现它(在 pango 中?PangoCairo?两者?)

  • 如果这不是一个强烈的要求,只需使用更明智的行为并使用现有的 elipsize 模式。

    关于label - 强制 GtkLabel 裁剪其居中对齐的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51643306/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com