我需要一些帮助来找出一种方法来实现以下目标:
我想要的是
- 将几个堆叠
Gtk.Widgets
在一起 - 小部件应放置在任何位置
- 如果小部件位于窗口之外,用户应通过水平或垂直方向滚动来导航
我的方法
- 堆叠:
Gtk.Overlay
- 滚动:
Gtk.ScrolledWindow
代码示例
public class MyApp : Gtk.Application {
public MyApp () {}
protected override void activate () {
var main_window = new Gtk.ApplicationWindow (this) {
default_height = 300,
default_width = 300,
title = "Hello World"
};
var overlay = new Gtk.Overlay ();
var scrolled_window = new Gtk.ScrolledWindow (null, null);
var label = new Gtk.Label ("Hello World") {
halign = Gtk.Align.START,
valign = Gtk.Align.START,
margin_top = 200,
margin_start = 400
};
var label1 = new Gtk.Label ("Hello again") {
halign = Gtk.Align.START,
valign = Gtk.Align.START,
margin_top = 400,
margin_start = 200
};
overlay.add_overlay (label);
overlay.add_overlay (label1);
scrolled_window.add (overlay);
main_window.add (scrolled_window);
main_window.show_all ();
}
public static int main (string[] args) {
return new MyApp ().run (args);
}
}
编译:valac --pkg gtk+-3.0 Main.vala
问题
- 滚动不起作用
- 显示
label
和label1
用户需要增加窗口的大小
问题
使程序按预期工作的正确方法是什么?谢谢你。