From a731ce6cedf3a4e55eb1916a5a773562ef67e2f3 Mon Sep 17 00:00:00 2001 From: fantasticbin Date: Fri, 28 Mar 2025 22:32:56 +0800 Subject: [PATCH] =?UTF-8?q?refactor(main):=20=E9=87=8D=E6=9E=84=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E9=80=89=E6=8B=A9=E9=80=BB=E8=BE=91=E5=92=8C=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 98 +++++++++++++++++++++++---------------------------------- 1 file changed, 39 insertions(+), 59 deletions(-) diff --git a/main.go b/main.go index ad12af7..c63f57e 100644 --- a/main.go +++ b/main.go @@ -17,78 +17,58 @@ func main() { myWindow.Resize(fyne.NewSize(640, 480)) // 创建显示框 - displayBox1 := widget.NewLabel("未选择") - displayBox2 := widget.NewLabel("未选择") + sourceDirLabel := widget.NewLabel("未选择") + targetDirLabel := widget.NewLabel("未选择") displayBoxInfo := canvas.NewText("", colornames.Blue) // 创建目录选择框 - dirSelect1 := widget.NewButton("选择作品存放目录", func() { - dirDialog := dialog.NewFolderOpen(func(d fyne.ListableURI, err error) { - if err == nil && d != nil { - displayBox1.SetText(d.Path()) + selectSourceDir := widget.NewButton("选择作品存放目录", func() { + dialog.ShowFolderOpen(func(uri fyne.ListableURI, err error) { + if err != nil { + sourceDirLabel.SetText("选择目录失败: " + err.Error()) + return + } + if uri != nil { + sourceDirLabel.SetText(uri.Path()) } }, myWindow) - dirDialog.Show() }) - dirSelect2 := widget.NewButton("选择输出目录", func() { - dirDialog := dialog.NewFolderOpen(func(d fyne.ListableURI, err error) { - if err == nil && d != nil { - displayBox2.SetText(d.Path()) + selectTargetDir := widget.NewButton("选择输出目录", func() { + dialog.ShowFolderOpen(func(uri fyne.ListableURI, err error) { + if err != nil { + targetDirLabel.SetText("选择目录失败: " + err.Error()) + return + } + if uri != nil { + targetDirLabel.SetText(uri.Path()) } }, myWindow) - dirDialog.Show() }) - // 创建确定按钮 - okButton := widget.NewButton("确 定", func() { - dir1 := displayBox1.Text - dir2 := displayBox2.Text - - 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(), - displayBoxInfo, - layout.NewSpacer(), - ) - - // 创建水平布局,将确定按钮居中 - okButtonContainer := container.NewHBox( - layout.NewSpacer(), - okButton, - layout.NewSpacer(), - ) - - // 创建垂直布局,将上述水平布局和确定按钮垂直排列 + // 创建主布局 content := container.NewVBox( - dirSelect1WithDisplay, - dirSelect2WithDisplay, - dirSelect3WithDisplay, + container.NewHBox(selectSourceDir, sourceDirLabel), + container.NewHBox(selectTargetDir, targetDirLabel), + container.NewCenter(displayBoxInfo), layout.NewSpacer(), - okButtonContainer, + container.NewCenter( + widget.NewButton("开始处理", func() { + displayBoxInfo.Text = "处理中..." + displayBoxInfo.Color = colornames.Blue + displayBoxInfo.Refresh() + + crawler := NewCrawler(sourceDirLabel.Text, targetDirLabel.Text) + if err := crawler.Handle(); err != nil { + displayBoxInfo.Text = "处理失败: " + err.Error() + displayBoxInfo.Color = colornames.Red + } else { + displayBoxInfo.Text = "处理完成" + displayBoxInfo.Color = colornames.Green + } + displayBoxInfo.Refresh() + }), + ), ) myWindow.SetContent(content)