包canvas包含构成Fyne GUI的所有基本CanvasObjects。

此包中实现的类型用作构建块,以构建更高阶的功能。通过设计,这些类型被设计为非交互式的。如果需要额外的功能,这通常意味着这种类型应该作为自定义小部件的一部分使用。

import "fyne.io/fyne/v2/canvas"

Circle 圆

定义

type Circle struct {
	//  圆的左上角位置和右下角位置
	Position1 fyne.Position
	Position2 fyne.Position
	//  是否可见
	Hidden    bool
	//  填充颜色和边框颜色
	FillColor   color.Color
	StrokeColor color.Color
	//  边框宽度
	StrokeWidth float32
}

示例

package main
 
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/canvas"
"image/color"
)
 
func main() {
	App := app.New()
	Window := App.NewWindow("test")
 
	c := canvas.NewCircle(color.RGBA{0, 255, 255, 255})
	c.StrokeWidth = 10
	c.StrokeColor = color.RGBA{255, 255, 0, 255}
	Window.SetContent(c)
 
	Window.Resize(fyne.NewSize(300, 200))
	Window.Show()
	App.Run()
}

Line 线

定义

type Line struct {
	//  线的左上角位置和右下角位置
	Position1 fyne.Position
	Position2 fyne.Position
	//  是否可见
	Hidden    bool
	//  填充颜色
	StrokeColor color.Color
	//  线宽
	StrokeWidth float32
}

示例

package main
 
import (
	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/canvas"
	"image/color"
)
 
func main() {
	App := app.New()
	Window := App.NewWindow("test")
 
	l := canvas.NewLine(color.RGBA{255, 255, 0, 255})
	Window.SetContent(l)
 
	Window.Resize(fyne.NewSize(300, 200))
	Window.Show()
	App.Run()
}

Rectangle 矩形

定义

type Rectangle struct {
	//  填充颜色
	FillColor   color.Color
	//  边框颜色
	StrokeColor color.Color
	//  边框宽度
	StrokeWidth float32
}

示例

package main
 
import (
	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/canvas"
	"image/color"
)
 
func main() {
	App := app.New()
	Window := App.NewWindow("test")
 
	l := canvas.NewRectangle(color.RGBA{255, 255, 0, 255})
	Window.SetContent(l)
 
	Window.Resize(fyne.NewSize(300, 200))
	Window.Show()
	App.Run()
}

Text 文本

定义

type Text struct {
	//  文本对齐方式
	Alignment fyne.TextAlign
	//  文本颜色
	Color     color.Color
	//  文本内容
	Text      string
	//  字体大小
	TextSize  float32
	//  文本样式
	TextStyle fyne.TextStyle
}

示例

package main
 
import (
	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/canvas"
	"image/color"
)
 
func main() {
	App := app.New()
	Window := App.NewWindow("test")
 
	l := canvas.NewText("hello", color.RGBA{255, 255, 255, 255})
	Window.SetContent(l)
 
	Window.Resize(fyne.NewSize(300, 200))
	Window.Show()
	App.Run()
}

Image 图像

定义

type Image struct {
	//  文件路径
	File     string
	//  从内存中加载图像资源
	Resource fyne.Resource
	//  使用已加载的图像
	Image    image.Image
	//  设置透明度
	Translucency float64
	//  填充方式
	FillMode     ImageFill
	//  缩放方式
	ScaleMode    ImageScale
}

示例

package main
 
import (
	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/canvas"
)
 
func main() {
	App := app.New()
	Window := App.NewWindow("test")
 
	l := canvas.NewImageFromFile("E:\\ohh\\goohh\\fyneStudy\\canvas\\cat.png")
	Window.SetContent(l)
 
	Window.Resize(fyne.NewSize(300, 200))
	Window.Show()
	App.Run()
}

LinearGradient 线性渐变

定义

type LinearGradient struct {
	//  起始颜色
	StartColor color.Color
	//  结束颜色
	EndColor   color.Color
	//  旋转角度
	Angle      float64
}

示例

package main
 
import (
	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/canvas"
	"image/color"
)
 
func main() {
	App := app.New()
	Window := App.NewWindow("test")
 
	l := canvas.NewLinearGradient(color.RGBA{255, 255, 255, 255}, color.RGBA{0, 0, 0, 255}, 45)
	Window.SetContent(l)
 
	Window.Resize(fyne.NewSize(300, 200))
	Window.Show()
	App.Run()
}

RadialGradient 径向渐变

定义

type RadialGradient struct {
	//  起始颜色
	StartColor color.Color
	//  结束颜色
	EndColor   color.Color
	//  中心偏移量
	CenterOffsetX, CenterOffsetY float64
}

示例

package main
 
import (
	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/canvas"
	"image/color"
)
 
func main() {
	App := app.New()
	Window := App.NewWindow("test")
 
	l := canvas.NewRadialGradient(color.RGBA{255, 255, 255, 255}, color.RGBA{0, 0, 0, 255})
	Window.SetContent(l)
 
	Window.Resize(fyne.NewSize(300, 200))
	Window.Show()
	App.Run()
}