You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Golang Fyne中隐藏窗口按钮与标题栏

在Fyne中移除窗口标题栏及控制按钮
  • 直接调用窗口的SetDecorated(false)方法即可禁用系统默认的窗口装饰,包括标题栏、最小化/最大化/关闭按钮。这是Fyne官方提供的标准API,可能你之前查阅文档时没注意到。
  • 基础实现代码示例:
package main

import (
    "fyne.io/fyne/v2/app"
    "fyne.io/fyne/v2/widget"
    "fyne.io/fyne/v2"
)

func main() {
    myApp := app.New()
    myWindow := myApp.NewWindow("") // 标题可留空,因为装饰已禁用
    
    // 核心配置:关闭窗口装饰
    myWindow.SetDecorated(false)
    
    myWindow.SetContent(widget.NewLabel("无标题栏窗口示例"))
    myWindow.Resize(fyne.NewSize(400, 300)) // 手动设置窗口初始大小
    myWindow.ShowAndRun()
}
  • 额外补充:去掉标题栏后窗口默认无法拖动,若需要实现拖动功能,可借助桌面端的鼠标事件处理,示例如下:
package main

import (
    "fyne.io/fyne/v2/app"
    "fyne.io/fyne/v2/widget"
    "fyne.io/fyne/v2/driver/desktop"
    "fyne.io/fyne/v2"
)

func main() {
    myApp := app.New()
    myWindow := myApp.NewWindow("")
    myWindow.SetDecorated(false)

    // 创建可拖动的顶层容器
    content := widget.NewLabel("可拖动的无标题栏窗口")
    if deskWin, ok := myWindow.(desktop.Window); ok {
        content.SetMouseDownHandler(func(event *desktop.MouseEvent) {
            deskWin.Drag()
        })
    }

    myWindow.SetContent(content)
    myWindow.Resize(fyne.NewSize(400, 300))
    myWindow.ShowAndRun()
}

内容的提问来源于stack exchange,提问作者artem6987

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 13:12:54