fyne绘制图形
fyne绘制矩形
canvas.Rectangle
是 Fyne 中最简单的画布对象。还可以设置颜色。
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/canvas"
"image/color"
)
func main() {
myApp := app.New()
w := myApp.NewWindow("golang-tech-stack.cm")
// 绘制矩形
rect := canvas.NewRectangle(color.Black)
// 为窗口设置内容
w.SetContent(rect)
// 调整窗口大小
w.Resize(fyne.NewSize(150, 100))
w.ShowAndRun()
}
NewRectangle():
// NewRectangle returns a new Rectangle instance
func NewRectangle(color color.Color) *Rectangle {
return &Rectangle{
FillColor: color,
}
}
color.Color是一个接口,color.Black是它的一个实现。
fyne绘制文本
package main
import (
"image/color"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/canvas"
)
func main() {
myApp := app.New()
w := myApp.NewWindow("golang-tech-stack.com")
// 新建文本画布
text := canvas.NewText("golang-tech-stack.com", color.Black)
// 右对齐
text.Alignment = fyne.TextAlignTrailing
// 文本样式 斜体
text.TextStyle = fyne.TextStyle{Italic: true}
w.SetContent(text)
w.ShowAndRun()
}
fyne绘制线
canvas.Line对象从(默认为顶部,左侧)到(默认为底部,右侧)绘制一条线。指定它的颜色,并且可以改变笔划宽度,否则默认为1。
package main
import (
"image/color"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/canvas"
)
func main() {
myApp := app.New()
w := myApp.NewWindow("golang-tech-stack.com")
// 线画布,
line := canvas.NewLine(color.Black)
// 线宽5
line.StrokeWidth = 5
w.SetContent(line)
w.Resize(fyne.NewSize(100, 100))
w.ShowAndRun()
}
可以使用Position1或Position2 字段来操作位置。
package main
import (
"fyne.io/fyne/v2/container"
"image/color"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/canvas"
)
func main() {
myApp := app.New()
w := myApp.NewWindow("golang.com")
// 线画布
line := canvas.NewLine(color.Black)
// 线宽2
line.StrokeWidth = 2
line.Position1 = fyne.NewPos(0, 50)
line.Position2 = fyne.NewPos(100, 50)
content := container.NewWithoutLayout(line)
w.SetContent(content)
w.Resize(fyne.NewSize(100, 100))
w.ShowAndRun()
}