首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TreeView: Pango.Alignment不工作

TreeView: Pango.Alignment不工作
EN

Stack Overflow用户
提问于 2012-03-11 16:42:47
回答 2查看 1.2K关注 0票数 1

And another TreeView problem,应该使用qt ;)

我有一个TreeView,在其中我使用以下函数来呈现文本:

代码语言:javascript
复制
private void RenderEntryValue (Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
{
      (cell as Gtk.CellRendererText).Markup = "" + someMarkupText;
      (cell as Gtk.CellRendererText).Alignment = Pango.Alignment.Center;
}

正如您可能从主题中猜到的那样,这是不起作用的。文本保持左对齐。除了在左边添加空格之外,你有什么办法让它工作吗?

在代码中,除了添加和处理列之外,没有其他地方会对TreeView执行任何操作。在那里的任何地方都没有设置对齐。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-25 23:43:11

虽然不是一个解决方案,但我至少找到了一个自定义CellRenderer形式的变通方法。不知何故,这并不是真正将文本放在中心,而是将一些像素放在它的左边,但这仍然比完全忽略对齐要好得多;)

代码语言:javascript
复制
public class CellRendererAlignedText : CellRendererText
{
    /**
     * Overridden render method to position text correctly.
     * */
    protected override void Render (Gdk.Drawable window, 
                                    Widget widget, 
                                    Gdk.Rectangle background_area, 
                                    Gdk.Rectangle cell_area, 
                                    Gdk.Rectangle expose_area, 
                                    CellRendererState flags)
    {
        if (Alignment == Pango.Alignment.Center)
        {   
            cell_area.X += background_area.Width/4;
            cell_area.Width /= 2;
        }
        base.Render (window, widget, background_area, cell_area, expose_area, flags);
    }
}
票数 0
EN

Stack Overflow用户

发布于 2012-07-21 02:31:34

alignment似乎只影响布局中文本的对齐方式。因为布局的宽度和它包含的文本一样宽,所以除非有多行,否则alignment什么也不做。

要使文本真正在列中居中,还需要设置xalign = 0.5f,因此:

代码语言:javascript
复制
private void RenderEntryValue (Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
{
    (cell as Gtk.CellRendererText).Markup = "" + someMarkupText;
    (cell as Gtk.CellRendererText).Alignment = Pango.Alignment.Center;
    cell.Xalign = 0.5f;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9653583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档