{"id":16784,"date":"2024-04-18T10:51:43","date_gmt":"2024-04-18T02:51:43","guid":{"rendered":"https:\/\/blog.ywdevops.cn\/?p=16784"},"modified":"2024-04-18T16:16:49","modified_gmt":"2024-04-18T08:16:49","slug":"fyne","status":"publish","type":"post","link":"https:\/\/blog.ywdevops.cn\/index.php\/2024\/04\/18\/fyne\/","title":{"rendered":"windows\u914d\u7f6efyne\u73af\u5883"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">fyne \u662f\u4e00\u4e2a\u7528\u4e8e Go \u8bed\u8a00\u7684 GUI \u5305\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7b80\u5355\u800c\u5f3a\u5927\u7684\u754c\u9762\u6784\u5efa\u6846\u67b6\u3002 fyne \u7684\u6838\u5fc3\u662f\u4e00\u4e2a\u4e8b\u4ef6\u9a71\u52a8\u7684\u6e32\u67d3\u5f15\u64ce\uff0c\u5b83\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u5177\u6709\u4e30\u5bcc\u4ea4\u4e92\u6027\u7684\u56fe\u5f62\u754c\u9762\u3002\u8be5\u6846\u67b6\u63d0\u4f9b\u4e86\u4e30\u5bcc\u7684\u5185\u7f6e\u63a7\u4ef6\uff0c\u5982\u6309\u94ae\u3001\u6587\u672c\u6846\u3001\u6807\u7b7e\u3001\u5217\u8868\u7b49\uff0c\u5e76\u4e14\u652f\u6301\u81ea\u5b9a\u4e49\u63a7\u4ef6\u7684\u521b\u5efa\u3002 \u6b64\u5916\uff0cfyne \u8fd8\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u7684\u5de5\u5177\u548c\u51fd\u6570\uff0c\u7528\u4e8e\u5904\u7406\u754c\u9762\u4e8b\u4ef6\u3001\u7ed8\u5236\u56fe\u5f62\u3001\u5904\u7406\u56fe\u50cf\u548c\u5b57\u4f53\u7b49\u3002\u5b83\u8fd8\u652f\u6301\u8de8\u5e73\u53f0\u5f00\u53d1\uff0c\u53ef\u4ee5\u5728 Windows\u3001macOS \u548c Linux \u7b49\u591a\u4e2a\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u8fd0\u884c\u3002 \u603b\u7684\u6765\u8bf4\uff0cfyne \u662f\u4e00\u4e2a\u975e\u5e38\u5f3a\u5927\u548c\u7075\u6d3b\u7684 GUI \u5305\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u5feb\u901f\u521b\u5efa\u5177\u6709\u9ad8\u4ea4\u4e92\u6027\u7684\u56fe\u5f62\u754c\u9762\u3002\u5b83\u7b80\u5355\u6613\u7528\uff0c\u5e76\u4e14\u5177\u6709\u5f88\u9ad8\u7684\u53ef\u6269\u5c55\u6027\uff0c\u53ef\u4ee5\u6ee1\u8db3\u5404\u79cd\u4e0d\u540c\u7684\u754c\u9762\u9700\u6c42\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">fyne\u82f1\u6587\u6587\u6863\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;docs.fyne.io\/explore\/layouts<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">MSYS2 \u662f\u4e00\u4e2a\u57fa\u4e8e MinGW-w64 \u7684\u53d1\u884c\u7248\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5b8c\u6574\u7684 POSIX \u5de5\u5177\u94fe\u548c\u5f00\u53d1\u73af\u5883\uff0c\u53ef\u4ee5\u8ba9\u5f00\u53d1\u4eba\u5458\u5728 Windows \u4e0a\u8f7b\u677e\u5730\u8fdb\u884c\u5f00\u6e90\u5f00\u53d1\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MSYS2 \u5305\u62ec\u4e86\u8bb8\u591a\u6d41\u884c\u7684\u5f00\u6e90\u5de5\u5177\uff0c\u5982 GCC\u3001GDB\u3001Make\u3001Python\u3001Perl \u7b49\u7b49\u3002\u5b83\u8fd8\u63d0\u4f9b\u4e86\u4e00\u4e2a Bash shell\uff0c\u53ef\u4ee5\u8ba9\u5f00\u53d1\u4eba\u5458\u50cf\u5728 Linux \u4e0a\u4e00\u6837\u4f7f\u7528\u547d\u4ee4\u884c\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f7f\u7528 MSYS2\uff0c\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u7f16\u8bd1\u3001\u8c03\u8bd5\u548c\u8fd0\u884c\u5404\u79cd\u5f00\u6e90\u8f6f\u4ef6\uff0c\u5305\u62ec C\u3001C++\u3001Java\u3001Python \u7b49\u8bed\u8a00\u7684\u7a0b\u5e8f\u3002\u6b64\u5916\uff0cMSYS2 \u8fd8\u53ef\u4ee5\u4e0e\u5176\u4ed6 Windows \u5e94\u7528\u7a0b\u5e8f\u65e0\u7f1d\u96c6\u6210\uff0c\u4f8b\u5982 Microsoft Visual Studio\u3001 Eclipse CDT \u7b49\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u603b\u7684\u6765\u8bf4\uff0cMSYS2 \u662f\u4e00\u4e2a\u975e\u5e38\u5f3a\u5927\u548c\u7075\u6d3b\u7684\u53d1\u884c\u7248\uff0c\u4e3a\u5f00\u53d1\u4eba\u5458\u5728 Windows \u4e0a\u8fdb\u884c\u5f00\u6e90\u5f00\u53d1\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5b8c\u6574\u7684\u89e3\u51b3\u65b9\u6848<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u4f8b\u5b50\u5728Windows10\u7cfb\u7edf\u6f14\u793a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fyne\u7684\u6b63\u5e38\u8fd0\u884c\u9700\u89813\u4e2a\u6700\u57fa\u672c\u7684\u8981\u7d20:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go tools (version > 1.12)<\/li>\n\n\n\n<li>C \u7f16\u8bd1\u5668<\/li>\n\n\n\n<li>\u7cfb\u7edf\u56fe\u5f62\u9a71\u52a8\u7a0b\u5e8f<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">1\u3001\u5b89\u88c5go\u73af\u5883\uff0c\u6b64\u5904\u8df3\u8fc7<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2\u3001\u5b89\u88c5windows\u5e73\u53f0\u53ef\u786c\u7684c\u7f16\u8bd1\u5668\uff0c\u4e0b\u9762\u4e09\u4e2a\u4efb\u610f\u4e00\u4e2a\u5373\u53ef\uff0c\u672c\u4f8b\u5b50\u9009\u62e9MSYS2<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>MSYS2 with MingW-w64 &#8211; <a href=\"https:\/\/www.msys2.org\/\">msys2.org<\/a>\uff0c\u540e\u9762\u7f51\u5740\u4e3a\u4e0b\u8f7d\u5730\u5740<\/li>\n\n\n\n<li>TDM-GCC &#8211; <a href=\"https:\/\/jmeubank.github.io\/tdm-gcc\/download\/\">tdm-gcc.tdragon.net<\/a><\/li>\n\n\n\n<li>Cygwin &#8211; <a href=\"https:\/\/www.cygwin.com\/\">cygwin.com<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">3\u3001windows\u56fe\u5f62\u9a71\u52a8\u7a0b\u5e8f\u9ed8\u8ba4\u5df2\u6709<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4\u3001\u4e00\u8def\u4e0b\u4e00\u6b65\u5b89\u88c5\u5b8cMSYS2\u540e\uff0c\u5148\u4e0d\u8981\u76f4\u63a5\u6253\u5f00\uff0c\u5728\u5f00\u59cb\u83dc\u5355\u6253\u5f00MSYS2 MinGW 64-bit\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"681\" height=\"304\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/7-5.jpg\" alt=\"\" class=\"wp-image-16792\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/7-5.jpg 681w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/7-5-300x134.jpg 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/7-5-600x268.jpg 600w\" sizes=\"auto, (max-width: 681px) 100vw, 681px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6267\u884c\u5982\u4e0b\u4e24\u6761\u547d\u4ee4\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> $ pacman -Syu\r\n $ pacman -S git mingw-w64-x86_64-toolchain<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"693\" height=\"165\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/0-1.jpg\" alt=\"\" class=\"wp-image-16795\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/0-1.jpg 693w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/0-1-300x71.jpg 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/0-1-600x143.jpg 600w\" sizes=\"auto, (max-width: 693px) 100vw, 693px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"696\" height=\"175\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/0-0.jpg\" alt=\"\" class=\"wp-image-16796\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/0-0.jpg 696w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/0-0-300x75.jpg 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/0-0-600x151.jpg 600w\" sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u9047\u5230\u63d0\u793a\u76f4\u63a5\u9009\u62e9y \u6216\u8005 all\u5373\u53ef<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">5\u3001\u5c06bin\u76ee\u5f55\u6dfb\u52a0\u5230\u73af\u5883\u53d8\u91cf\u4e2d\uff0c\u7136\u540e\u67e5\u770bgcc\u662f\u5426\u5b89\u88c5\u6210\u529f\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"689\" height=\"252\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/0-1-1.jpg\" alt=\"\" class=\"wp-image-16798\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/0-1-1.jpg 689w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/0-1-1-300x110.jpg 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/0-1-1-600x219.jpg 600w\" sizes=\"auto, (max-width: 689px) 100vw, 689px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"691\" height=\"117\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/2-7.jpg\" alt=\"\" class=\"wp-image-16799\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/2-7.jpg 691w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/2-7-300x51.jpg 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/2-7-600x102.jpg 600w\" sizes=\"auto, (max-width: 691px) 100vw, 691px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">6\u3001\u5c06go\u5b89\u88c5\u8def\u5f84\u548cGOPATH\u8def\u5f84\u6dfb\u52a0\u5230MSYS2\u7684\u73af\u5883\u53d8\u91cf\u4e2d\uff0c\u8fd8\u662f\u5728\u5f00\u59cb\u83dc\u5355\u6253\u5f00MSYS2 MinGW 64-bit\uff0c\u7136\u540e\u8f93\u5165\u5982\u4e0b\u547d\u4ee4\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"export PATH=\\$PATH:\/d\/Program\\ Files\/Go\/bin:\/d\/Goproject\/bin\" >> ~\/.bashrc<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Goproject\uff1a \u914d\u7f6e\u7684GOPATH\u8def\u5f84<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">7\u3001\u521b\u5efa\u4e00\u4e2a\u9879\u76ee\u76ee\u5f55\uff0c\u8fdb\u5165\u76ee\u5f55\u4e2d\uff0c\u901a\u8fc7go mod \u521d\u59cb\u5316\u5e76\u5b89\u88c5fyne\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ cd myapp\r\n$ go mod init MODULE_NAME\n$ go get fyne.io\/fyne\/v2@latest\r\n$ go install fyne.io\/fyne\/v2\/cmd\/fyne@latest<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">8\u3001\u4f7f\u7528Fyne Setup\u68c0\u67e5\u73af\u5883\u662f\u5426\u914d\u7f6e\u6210\u529f\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u4e0b\u8f7d\u5730\u5740: https:\/\/geoffrey-artefacts.fynelabs.com\/github\/andydotxyz\/fyne-io\/setup\/latest\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u73af\u5883\u914d\u7f6e\u6210\u529f\uff0c\u6253\u5f00\u540e\u663e\u793a\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"692\" height=\"427\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/3-6.jpg\" alt=\"\" class=\"wp-image-16804\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/3-6.jpg 692w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/3-6-300x185.jpg 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/3-6-600x370.jpg 600w\" sizes=\"auto, (max-width: 692px) 100vw, 692px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">9\u3001\u7b2c\u4e00\u6b21\u8fd0\u884c\u9700\u8981\u7f16\u8bd1\u4e00\u4e9bC\u4ee3\u7801\uff0c\u540e\u7eed\u6784\u5efa\u4f7f\u7528\u7f13\u5b58\u901f\u5ea6\u5c31\u4f1a\u5feb\u5f88\u591a\uff0c\u5148\u8fd0\u884c\u4e0b\u5b98\u65b9\u7684fync_demo\u7f16\u8bd1\u4e00\u4e0bC\u4ee3\u7801\uff0c\u6784\u5efa\u4e0b\u7f13\u5b58\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>go run fyne.io\/fyne\/v2\/cmd\/fyne_demo@latest<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"693\" height=\"307\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/4-7.jpg\" alt=\"\" class=\"wp-image-16806\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/4-7.jpg 693w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/4-7-300x133.jpg 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2024\/04\/4-7-600x266.jpg 600w\" sizes=\"auto, (max-width: 693px) 100vw, 693px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u540e\u7eed\u7f16\u5199\u81ea\u5df1\u7684\u7a0b\u5e8f\u7684\u65f6\u5019\uff0c\u5728\u8fd0\u884c\u5c31\u4f1a\u5feb\u5f88\u591a\u4e86<\/p>\n","protected":false},"excerpt":{"rendered":"<p>fyne \u662f\u4e00\u4e2a\u7528\u4e8e Go \u8bed\u8a00\u7684 GUI \u5305\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7b80\u5355\u800c\u5f3a\u5927\u7684\u754c\u9762\u6784\u5efa\u6846\u67b6\u3002 fyne \u7684\u6838\u5fc3\u662f\u4e00\u4e2a [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":16785,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33,22],"tags":[],"class_list":["post-16784","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-windows","category-server"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"_links":{"self":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts\/16784","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/comments?post=16784"}],"version-history":[{"count":16,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts\/16784\/revisions"}],"predecessor-version":[{"id":16809,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts\/16784\/revisions\/16809"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/media\/16785"}],"wp:attachment":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/media?parent=16784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/categories?post=16784"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/tags?post=16784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}