You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
ehentai-go/main.go

85 lines
2.1 KiB

package main
import (
"fmt"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("下载工具")
myWindow.Resize(fyne.NewSize(800, 600))
// 创建输入框
ipEntry := widget.NewEntry()
ipEntry.SetText("127.0.0.1")
ipEntry.Resize(fyne.NewSize(200, ipEntry.MinSize().Height))
portEntry := widget.NewEntry()
portEntry.SetText("7890")
ipEntry.Resize(fyne.NewSize(150, ipEntry.MinSize().Height))
// 创建输出框
outputText := widget.NewMultiLineEntry()
outputText.SetPlaceHolder("输出将显示在这里...")
outputText.Wrapping = fyne.TextWrapWord
// 创建按钮
urlButton := widget.NewButton("下载URL", func() {
ip := ipEntry.Text
port := portEntry.Text
// 在输出框中显示信息
outputText.SetText(fmt.Sprintf("开始下载URL - IP: %s, Port: %s\n%s", ip, port, outputText.Text))
// 调用UrlDownloader函数
UrlDownloader(ip, port, outputText)
})
imgButton := widget.NewButton("下载图片", func() {
ip := ipEntry.Text
port := portEntry.Text
// 在输出框中显示信息
outputText.SetText(fmt.Sprintf("开始下载图片 - IP: %s, Port: %s\n%s", ip, port, outputText.Text))
// 调用ImgDownloader函数
ImgDownloader(ip, port, outputText)
})
clearButton := widget.NewButton("清除输出", func() {
outputText.SetText("")
})
// 创建滚动容器用于输出框
scrollContainer := container.NewScroll(outputText)
scrollContainer.SetMinSize(fyne.NewSize(400, 400))
// 布局
// 左侧按钮容器
leftPanel := container.NewVBox(
urlButton,
imgButton,
clearButton,
widget.NewLabel(""), // 空标签用于间隔
)
// 顶部输入框容器
inputPanel := container.NewHBox(
widget.NewLabel("IP:"),
ipEntry,
widget.NewLabel("端口:"),
portEntry,
)
// 主布局:顶部是输入框,中间是左右分栏
content := container.NewBorder(
inputPanel, // 顶部
nil, // 底部
leftPanel, // 左侧
nil, // 右侧
scrollContainer, // 中间
)
myWindow.SetContent(content)
myWindow.ShowAndRun()
}