Compare commits

..

No commits in common. "main" and "1.0" have entirely different histories.
main ... 1.0

98
main.go
View File

@ -17,58 +17,78 @@ func main() {
myWindow.Resize(fyne.NewSize(640, 480)) myWindow.Resize(fyne.NewSize(640, 480))
// 创建显示框 // 创建显示框
sourceDirLabel := widget.NewLabel("未选择") displayBox1 := widget.NewLabel("未选择")
targetDirLabel := widget.NewLabel("未选择") displayBox2 := widget.NewLabel("未选择")
displayBoxInfo := canvas.NewText("", colornames.Blue) displayBoxInfo := canvas.NewText("", colornames.Blue)
// 创建目录选择框 // 创建目录选择框
selectSourceDir := widget.NewButton("选择作品存放目录", func() { dirSelect1 := widget.NewButton("选择作品存放目录", func() {
dialog.ShowFolderOpen(func(uri fyne.ListableURI, err error) { dirDialog := dialog.NewFolderOpen(func(d fyne.ListableURI, err error) {
if err != nil { if err == nil && d != nil {
sourceDirLabel.SetText("选择目录失败: " + err.Error()) displayBox1.SetText(d.Path())
return
}
if uri != nil {
sourceDirLabel.SetText(uri.Path())
} }
}, myWindow) }, myWindow)
dirDialog.Show()
}) })
selectTargetDir := widget.NewButton("选择输出目录", func() { dirSelect2 := widget.NewButton("选择输出目录", func() {
dialog.ShowFolderOpen(func(uri fyne.ListableURI, err error) { dirDialog := dialog.NewFolderOpen(func(d fyne.ListableURI, err error) {
if err != nil { if err == nil && d != nil {
targetDirLabel.SetText("选择目录失败: " + err.Error()) displayBox2.SetText(d.Path())
return
}
if uri != nil {
targetDirLabel.SetText(uri.Path())
} }
}, myWindow) }, myWindow)
dirDialog.Show()
}) })
// 创建主布局 // 创建确定按钮
content := container.NewVBox( okButton := widget.NewButton("确 定", func() {
container.NewHBox(selectSourceDir, sourceDirLabel), dir1 := displayBox1.Text
container.NewHBox(selectTargetDir, targetDirLabel), dir2 := displayBox2.Text
container.NewCenter(displayBoxInfo),
displayBoxInfo.Color = colornames.Blue
displayBoxInfo.Text = "处理中ing..."
crawler := NewCrawler(dir1, dir2)
if err := crawler.Handle(); err != nil {
displayBoxInfo.Color = colornames.Red
displayBoxInfo.Text = err.Error()
} else {
displayBoxInfo.Color = colornames.Green
displayBoxInfo.Text = "处理完成"
}
})
// 创建水平布局,将目录选择框和显示框并排排列
dirSelect1WithDisplay := container.NewHBox(
dirSelect1,
displayBox1,
)
dirSelect2WithDisplay := container.NewHBox(
dirSelect2,
displayBox2,
)
dirSelect3WithDisplay := container.NewHBox(
layout.NewSpacer(), layout.NewSpacer(),
container.NewCenter( displayBoxInfo,
widget.NewButton("开始处理", func() { layout.NewSpacer(),
displayBoxInfo.Text = "处理中..." )
displayBoxInfo.Color = colornames.Blue
displayBoxInfo.Refresh()
crawler := NewCrawler(sourceDirLabel.Text, targetDirLabel.Text) // 创建水平布局,将确定按钮居中
if err := crawler.Handle(); err != nil { okButtonContainer := container.NewHBox(
displayBoxInfo.Text = "处理失败: " + err.Error() layout.NewSpacer(),
displayBoxInfo.Color = colornames.Red okButton,
} else { layout.NewSpacer(),
displayBoxInfo.Text = "处理完成" )
displayBoxInfo.Color = colornames.Green
} // 创建垂直布局,将上述水平布局和确定按钮垂直排列
displayBoxInfo.Refresh() content := container.NewVBox(
}), dirSelect1WithDisplay,
), dirSelect2WithDisplay,
dirSelect3WithDisplay,
layout.NewSpacer(),
okButtonContainer,
) )
myWindow.SetContent(content) myWindow.SetContent(content)