GO语言用walk界面库 如何实现窗口1350*750 左上角是一个1000*450列表框,右上角是350*450文本框,底部是600*300的文本框,使用布局铺满整个窗口
时间: 2023-11-27 12:02:48 浏览: 25
你可以使用Walk的HorizontalLayout和VerticalLayout来实现这个布局。具体步骤如下:
1. 创建一个MainWindow,设置它的大小为1350*750。
```go
mw, err := walk.NewMainWindow()
if err != nil {
log.Fatal(err)
}
mw.SetSize(walk.Size{1350, 750})
```
2. 创建一个VerticalLayout作为MainWindow的布局。
```go
vl := walk.NewVerticalLayout()
vl.SetSpacing(10)
vl.SetMargins(walk.Margins{10, 10, 10, 10})
mw.SetLayout(vl)
```
3. 在VerticalLayout中创建一个HorizontalLayout作为上半部分的布局。
```go
hl := walk.NewHorizontalLayout()
hl.SetSpacing(10)
vl.Layout().SetRowStretch(0, 1)
vl.Layout().SetRowStretch(1, 4)
vl.Layout().SetRowStretch(2, 2)
vl.Layout().SetColumnStretch(0, 1)
vl.Layout().SetColumnStretch(1, 3)
vl.Layout().SetColumnStretch(2, 6)
vl.Layout().SetColumnStretch(3, 3)
vl.Layout().SetColumnStretch(4, 1)
vl.Layout().SetColumnStretch(5, 1)
vl.Layout().SetColumnStretch(6, 1)
vl.Layout().SetColumnStretch(7, 1)
vl.Layout().SetColumnStretch(8, 1)
vl.Layout().SetColumnStretch(9, 1)
vl.Layout().SetColumnStretch(10, 1)
vl.Layout().SetColumnStretch(11, 1)
vl.Layout().SetColumnStretch(12, 1)
vl.Layout().SetColumnStretch(13, 1)
vl.Layout().SetColumnStretch(14, 1)
vl.Layout().SetColumnStretch(15, 1)
vl.Layout().SetColumnStretch(16, 1)
vl.Layout().SetColumnStretch(17, 1)
vl.Layout().SetColumnStretch(18, 1)
vl.Layout().SetColumnStretch(19, 1)
vl.Layout().SetColumnStretch(20, 1)
vl.Layout().SetRow(hl, 0)
```
4. 在HorizontalLayout中创建一个Listbox作为左上角的列表框,创建一个TextEdit作为右上角的文本框。
```go
lb, err := walk.NewListBox(hl)
if err != nil {
log.Fatal(err)
}
lb.SetSize(walk.Size{1000, 450})
hl.Layout().SetColumn(lb, 0)
te, err := walk.NewTextEdit(hl)
if err != nil {
log.Fatal(err)
}
te.SetSize(walk.Size{350, 450})
hl.Layout().SetColumn(te, 2)
```
5. 在VerticalLayout中创建一个TextEdit作为底部的文本框。
```go
te2, err := walk.NewTextEdit(mw)
if err != nil {
log.Fatal(err)
}
te2.SetSize(walk.Size{600, 300})
vl.Layout().SetRow(te2, 2)
```
6. 最后,调用MainWindow的Run方法来启动应用程序。
```go
mw.Run()
```