📙Go语言:进阶大全

Go语言:Windows下最好用的桌面GUI库(lxn/walk

2019-08-16  本文已影响0人  白祤星

导言:

前置安装:


go get github.com/akavel/rsrc
go get github.com/lxn/win
go get github.com/lxn/walk

代码实例:


package main

import (
    "syscall"

    "github.com/lxn/walk"
    "github.com/lxn/win"
)

func main() {
    window, _ := walk.NewMainWindow()

    // 设置窗体标题
    window.SetTitle(`你好世界!`)

    // 设置窗体的宽高
    window.SetWidth(400)
    window.SetHeight(400)

    // 设置窗体生成在屏幕的正中间
    // 窗体横坐标 = ( 屏幕宽度 - 窗体宽度 ) / 2
    // 窗体纵坐标 = ( 屏幕高度 - 窗体高度 ) / 2
    window.SetX((int(win.GetSystemMetrics(0)) - window.Width()) / 2)
    window.SetY((int(win.GetSystemMetrics(1)) - window.Height()) / 2)

    // 设置窗体为显示状态(默认:隐藏状态)
    window.Show()

    // 运行窗体
    window.Run()
}

创建清单文件 main.manifest


文件说明:

文件内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="SomeFunkyNameHere" type="win32"/>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
        </dependentAssembly>
    </dependency>
    <application xmlns="urn:schemas-microsoft-com:asm.v3">
        <windowsSettings>
            <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
            <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True</dpiAware>
        </windowsSettings>
    </application>
</assembly>

生成 / 编译:


第一步:将 main.manifest 生成为 main.syso

rsrc -manifest main.manifest -o main.syso

第二步:编译成独立的 exe 文件

go build
go build -ldflags="-H windowsgui -w -s"

运行结果:


上一篇下一篇

猜你喜欢

热点阅读