Diseño de paseo de la biblioteca GUI de Go

Hay muchas bibliotecas de interfaz gráfica de usuario disponibles, pero muchas de ellas carecen de documentación oficial, lo que dificulta su aprendizaje. Después de considerarlo repetidamente, elegí la biblioteca walk para aprender, que solo se puede ejecutar en la plataforma de Windows. El estilo de sintaxis de la biblioteca walk es como JavaScript, que puede crear rápidamente programas de interfaz gráfica de usuario, y la interfaz también es hermosa. Al mismo tiempo, la biblioteca walk utiliza la reflexión para lograr la capacidad de respuesta, lo que puede vincular los valores y las variables en la interfaz en dos direcciones, lo cual es muy conveniente. Por supuesto, si desea que sea muy hermoso, todavía usa Qt.
Aprendí a través de los ejemplos dados en github . Organice de acuerdo con las ideas de aprendizaje de la biblioteca de interfaz gráfica de usuario general.
Crear una ventana básica puede encontrar ejemplos en GitHub

ventana

package main

import (
	"github.com/lxn/walk"
	. "github.com/lxn/walk/declarative"
	"strings"
)

func main() {
    
    
	var inTE, outTE *walk.TextEdit

	MainWindow{
    
    
		Title:   "SCREAMO",
		MinSize: Size{
    
    600, 400},
		Layout:  VBox{
    
    },
		Children: []Widget{
    
    
			HSplitter{
    
    
				Children: []Widget{
    
    
					TextEdit{
    
    AssignTo: &inTE},
					TextEdit{
    
    AssignTo: &outTE, ReadOnly: true},
				},
			},
			PushButton{
    
    
				Text: "SCREAM",
				OnClicked: func() {
    
    
					outTE.SetText(strings.ToUpper(inTE.Text()))
				},
			},
		},
	}.Run()

El programa anterior crea una ventana. Por supuesto, es necesario rsrc.syso. Este archivo se utiliza para solicitar algunos permisos y no necesita ser cambiado. Podemos ver que la estructura de toda la ventana es muy clara usando la estructura. El primero es el título de la ventana, el segundo es el tamaño mínimo de la ventana y el segundo es el diseño, que muestra que los subcomponentes están dispuestos verticalmente, por supuesto, también puede haber sub-diseños dentro del sub -componentes. Después de definir los componentes en la ventana, un divisor horizontal y dos cuadros de texto, se organizarán horizontalmente. Inmediatamente debajo hay un botón y define el texto del botón y el evento de clic. Todo esto es muy sencillo, claro e intuitivo.
Inserte la descripción de la imagen aquí

composición

El diseño de la caminata es muy simple, pero puede resolver la mayoría de las necesidades.

Disposición vertical

El diseño vertical sirve para organizar los componentes verticalmente. Se puede especificar el margen y habrá margen de forma predeterminada.

package main

import (
	. "github.com/lxn/walk/declarative"
)

func main() {
    
    

	var mw = MainWindow{
    
    
		Title:
		"SCREAMO",
		// 指定窗口的大小
		MinSize: Size{
    
    Width: 600, Height: 400},
		Layout: VBox{
    
    

		},
		Children: []Widget{
    
    
			PushButton{
    
    Text: "btn1"},
			PushButton{
    
    Text: "btn2"},
			PushButton{
    
    Text: "btn3"},
			PushButton{
    
    Text: "btn4"},
			PushButton{
    
    Text: "btn5"},
		},
	}
	mw.Persistent = true
	mw.Run()
}

verticulo

Disposición horizontal

Lo mismo

Diseño de cuadrícula

El diseño de cuadrícula puede especificar el número de filas y columnas, y también puede especificar filas o columnas.

package main

import (
	. "github.com/lxn/walk/declarative"
)

func main() {
    
    

	var mw = MainWindow{
    
    
		Title:
		"SCREAMO",
		// 指定窗口的大小
		MinSize: Size{
    
    },
		Layout: Grid{
    
    
			Rows: 3,
		},
		Children: []Widget{
    
    
			PushButton{
    
    Text: "btn1"},
			PushButton{
    
    Text: "btn2"},
			PushButton{
    
    Text: "btn3"},
			PushButton{
    
    Text: "btn4"},
			PushButton{
    
    Text: "btn5"},
		},
	}
	mw.Persistent = true
	mw.Run()
}

cuadrícula

Especifique el número de columnas ocupadas por el componente y use relleno en blanco

package main

import (
	. "github.com/lxn/walk/declarative"
)

func main() {
    
    

	var mw = MainWindow{
    
    
		Title:
		"SCREAMO",
		// 指定窗口的大小
		MinSize: Size{
    
    },
		Layout: Grid{
    
    
			Columns: 5,
		},
		Children: []Widget{
    
    
			PushButton{
    
    Text: "btn1",ColumnSpan: 2},
			PushButton{
    
    Text: "btn2"},
			PushButton{
    
    Text: "btn3"},
			HSpacer{
    
    ColumnSpan: 3},
			PushButton{
    
    Text: "btn4"},
			PushButton{
    
    Text: "btn5"},
		},
	}
	mw.Persistent = true
	mw.Run()
}

cuadrícula 2

Utilice divisor horizontal o vertical

package main

import (
	. "github.com/lxn/walk/declarative"
)

func main() {
    
    

	var mw = MainWindow{
    
    
		Title:
		"SCREAMO",
		// 指定窗口的大小
		MinSize: Size{
    
    },
		Layout: VBox{
    
    
			MarginsZero: true,
		},
		Children: []Widget{
    
    
			HSplitter{
    
    
				Children: []Widget{
    
    
					PushButton{
    
    Text: "btn1"},
					PushButton{
    
    Text: "btn2"},
					PushButton{
    
    Text: "btn3"},
				},
			},
			VSeparator{
    
    
				
			},
			PushButton{
    
    Text: "btn4"},
			PushButton{
    
    Text: "btn5"},
		},
	}
	mw.Persistent = true
	mw.Run()
}

Vamos

Supongo que te gusta

Origin blog.csdn.net/m0_47202518/article/details/115035029
Recomendado
Clasificación