如何使 Gtk.TextView 在 Gtk.Box 中正确渲染,而不需要用户先调整窗口大小?

问题描述 投票:0回答:1

每当我有一个

Gtk.Box
且内部有
Gtk.TextView
时,在调整窗口大小之前,文本视图不会正确显示。

以下是示例的屏幕截图:

  • Before resizing window
  • After resizing window

让我向您展示一个最小的可重现示例,其中

Gtk.Box
包含
Gtk.TextView
直接作为窗口的子窗口(蓝图中的 UI 描述):

template $ExampleWindow : Adw.ApplicationWindow {
    Box {
        orientation: vertical;
        TextView { }
    }
}

当我打开窗口时,看不到任何文本视图。改变窗口大小后出现。

更新

Kripto在他的回答中建议将

vexpand
Gtk.TextView
设置为
true
。这解决了问题,但我希望文本视图保持尽可能小(例如,一行文本显示一行,两行文本显示两行),并且不要垂直扩展。

gtk gnome
1个回答
0
投票

我不知道调整窗口大小时小部件会发生变化,但是如果您希望 Gtk.TextView 水平和垂直扩展,则必须添加 vexpandhexpand

这是 BluePrint 中的示例:

using Gtk 4.0;
using Adw 1;

template $ExampleWindow: Adw.ApplicationWindow {

default-width:600;
default-height:400;
    
    Box {
        orientation: vertical;
        
        Adw.HeaderBar{}
        
       
        
        TextView { 
        vexpand:true;
        hexpand:true;
        margin-top:30;
        margin-end:30;
        margin-start:30;
        
        
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.