gtk# Vbox 没有出现
gtk# Vbox not showing up
我正在尝试在我的 gtk# 应用程序中设置 2 个 VBox。问题是,他们根本没有出现。我看不到按钮。我做错了什么?
using System;
using Gtk;
using Kassa;
public partial class MainWindow : Gtk.Window
{
VBox left, right;
public MainWindow() : base(Gtk.WindowType.Toplevel)
{
Build();
this.Title = "Kassa";
this.SetSizeRequest(1920, 1080);
//this.Fullscreen();
left = new VBox();
left.HeightRequest = this.HeightRequest;
right = new VBox(true, 0);
right.HeightRequest = this.HeightRequest;
right.WidthRequest = 64 * 4;
Button button = new Button("b");
right.Add(button);
right.PackStart(button, true, false, 0);
button.Show();
this.Add(left);
this.Add(right);
right.Show();
this.ShowAll();
}
protected void OnDeleteEvent(object sender, DeleteEventArgs a)
{
Application.Quit();
a.RetVal = true;
}
}
我已经尝试了我能想到的所有可能的 Add 和 ShowAll 组合。
您应该只使用 Window.Add()
一次,添加包含的小部件(VBox 或类似的),然后使用 Box.PackStart()
和 Box.PackEnd()
该容器中的方法以创建复杂的布局。
Build();
this.Title = "Kassa";
VBox container = new VBox();
left = new VBox();
right = new VBox(true, 0);
Button button = new Button( "b" );
right.Add(button);
right.PackStart( button, true, false, 0 );
container.PackStart( left, true, true, 5 );
container.PackStart( right, true, true, 5 );
this.Add( container );
this.ShowAll();
如果您以相反的顺序添加框,您会看到一个巨大的按钮占据了整个屏幕。解释是 Window.Add()
只是加了一项,如果你调用两次,那么前者忘记了,而后者使用...正是那个什么都没有的(前者有一个按钮),造成错觉没有显示任何内容。
希望对您有所帮助。
我正在尝试在我的 gtk# 应用程序中设置 2 个 VBox。问题是,他们根本没有出现。我看不到按钮。我做错了什么?
using System;
using Gtk;
using Kassa;
public partial class MainWindow : Gtk.Window
{
VBox left, right;
public MainWindow() : base(Gtk.WindowType.Toplevel)
{
Build();
this.Title = "Kassa";
this.SetSizeRequest(1920, 1080);
//this.Fullscreen();
left = new VBox();
left.HeightRequest = this.HeightRequest;
right = new VBox(true, 0);
right.HeightRequest = this.HeightRequest;
right.WidthRequest = 64 * 4;
Button button = new Button("b");
right.Add(button);
right.PackStart(button, true, false, 0);
button.Show();
this.Add(left);
this.Add(right);
right.Show();
this.ShowAll();
}
protected void OnDeleteEvent(object sender, DeleteEventArgs a)
{
Application.Quit();
a.RetVal = true;
}
}
我已经尝试了我能想到的所有可能的 Add 和 ShowAll 组合。
您应该只使用 Window.Add()
一次,添加包含的小部件(VBox 或类似的),然后使用 Box.PackStart()
和 Box.PackEnd()
该容器中的方法以创建复杂的布局。
Build();
this.Title = "Kassa";
VBox container = new VBox();
left = new VBox();
right = new VBox(true, 0);
Button button = new Button( "b" );
right.Add(button);
right.PackStart( button, true, false, 0 );
container.PackStart( left, true, true, 5 );
container.PackStart( right, true, true, 5 );
this.Add( container );
this.ShowAll();
如果您以相反的顺序添加框,您会看到一个巨大的按钮占据了整个屏幕。解释是 Window.Add()
只是加了一项,如果你调用两次,那么前者忘记了,而后者使用...正是那个什么都没有的(前者有一个按钮),造成错觉没有显示任何内容。
希望对您有所帮助。