【问题标题】:In Gtk, how do I center the text within a TextView vertically?在 Gtk 中,如何将 TextView 中的文本垂直居中?
【发布时间】:2010-01-18 01:13:19
【问题描述】:

如果我只是制作一个标准的TextView 并将Justification 设置为Center,它看起来像这样:

如果我还想将文本垂直和水平居中,我该怎么做?

【问题讨论】:

  • 我没有看到任何方法可以使用 GtkTextView“正常”执行此操作。您可能可以继承 GtkTextView 并覆盖它的一些文本绘图功能,但这可能非常困难。我强烈建议改为在 GTK+ 邮件列表中提问,因为那里有更多具有相关知识的人。

标签: c# gtk gtk#


【解决方案1】:

您可以通过根据 textview 控件的大小和其中显示的文本的大小动态更新 pixels-above-lines 来伪造这种对齐方式。

【讨论】:

  • 通过将像素线上方的像素与等宽字体组合或绘制文本以计算出它占用了多少行,您可以自动计算将其居中的值应该是多少(通过与 TextView 本身的高度进行比较)。
  • @minitech:我早就离开了这个问题,并没有回去研究这个解决方案。既然您对这个问题给予了赏金,那么这个解决方案对您有用吗?如果是,我会接受答案。
  • @Matthew:不,我还没有弄清楚如何衡量其中的文字,但这是所有答案中最正确的答案,我不想让赏金浪费:) 不过,当我得到它时,我会添加一个代码示例。
【解决方案2】:

TextViews 通常用于用户可以编辑的大量文本。因此它可能会变得太大并且必须滚动,因此很难垂直居中。

如果你只是用它来显示不需要编辑的消息,你可以试试Gtk.Label,你可以垂直居中。

【讨论】:

  • 我明白了,我现在正在接受您的建议并使用标签而不是 TextViews。不过,最终,我希望它们能够就地编辑。希望有一些解决方案。
【解决方案3】:

您是否尝试过使用:

GTK_WRAP_CHAR

它可以将文本包装在“光标可以出现的每个地方”,如下所示:http://developer.gnome.org/gtk/2.24/GtkTextView.html#gtk-text-view-set-wrap-mode(点击一下)

这可能是有益的

pixels-above-lines

【讨论】:

    猜你喜欢
    • 2013-09-14
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 2014-03-23
    • 2018-06-25
    • 2013-10-15
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多