рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдиреЛрдЯрдкреИрдб рдкрд░ рдЬрд╛рдПрдВ

рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЧреЛ рднрд╛рд╖рд╛ рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рдЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдЪрд┐рддреНрд░рдордп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмреАрдЪ рдЕрднреА рднреА рдЬреАрдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ: рдРрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдЙрдирдХреА рд╕реВрдЪреА рджреВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдХрдИ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рд╡реЙрдХ рд╣реИ , рдЬрд┐рд╕рдХрд╛ рдирд╛рдо "рд╡рд┐рдВрдбреЛрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд┐рдЯ" рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде, рдореИрдВ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди

рдорд╛рди рд▓реАрдЬрд┐рдП рдореИрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдиреЛрдЯрдкреИрдб рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдкрд╛рда рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЙрд╕ рдкрд╛рда рдХреЛ рд╡рд╛рдкрд╕ рд▓реЛрдб рдХрд░реЗрдВ, рдкрд╛рда рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВред

рд╡реЙрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рд╡реЙрдХ рдХреЗрд╡рд▓ рдЧреЛ рд╕рдВрд╕реНрдХрд░рдг 1.1.x рдФрд░ рдЙрдЪреНрдЪрддрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдХрджрдо GitHub рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реИред CMD рдЪрд▓рд╛рдПрдБ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
go get github.com/lxn/walk 

рдЕрдЧрд░ рдЧреЛ рдХрд╕рдо рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ:
 go: missing Git command ... 
рдЖрдкрдХреЛ git-scm.com/downloads рдкрд░ рдЬрд╛рдХрд░ Git рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рдЗрд╕рдХреА рддреНрд░реБрдЯрд┐ рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реБрдИ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ GAT рдХрд╛ рдкрде% PATH% рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред

рдПрдХ рдЦрд╛рд▓реА рдлреЙрд░реНрдо рдмрдирд╛рдПрдВ

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде gopad.go рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
 package main import ( . "github.com/lxn/walk/declarative" ) func main() { MainWindow{ Title: "GoPad", //    MinSize: Size{600, 400}, //     }.Run() } 

рдЕрдм рд╣рдорд╛рд░реЗ рд╕реНрд░реЛрдд рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ build.bat рдмреИрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдБ:
 go build -ldflags="-H windowsgui" pause 

рд╣рдо ldflags рдХреБрдВрдЬреА рдХреЛ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рдХрд░ рд╕рдХреЗ, рд▓реЗрдХрд┐рди рддрдм рдлреЙрд░реНрдо рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдХрдВрд╕реЛрд▓ рдХреЗ рд╕рд╛рде рдЪрд▓реЗрдЧрд╛ред рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣реИред рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдореА .exe рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣реИред рд╣рдореЗрдВ рдПрдХ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдкреНрд░рдХрдЯред gopad.exe.manifest рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ gopad.exe.manifest ( gopad.exe.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="SomeName" type="win32"/> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/> </dependentAssembly> </dependency> </assembly> 

рдкреНрд░рдХрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдмрд╛рдЗрдирд░реА рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧреА!
рдЬрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЦрд╛рд▓реА рдлреЙрд░реНрдо рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореЗрд░рд╛ рдкрд░рд┐рдгрд╛рдореА рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


рдЖрд╡рд╢реНрдпрдХ рдмрдЯрди рдФрд░ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВ

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВред рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛрдбрд╝реЗрдВ:
 import ( "github.com/lxn/walk" . "github.com/lxn/walk/declarative" ) 

рдлрд┐рд░ рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдмрдирд╛рдПрдВ, рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд╡реИрд░рд┐рдПрдмрд▓ рдФрд░ рдЗрд╕реЗ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдмрд╛рдБрдзреЗрдВ:
 func main() { var edit *walk.TextEdit MainWindow{ Title: "GoPad", MinSize: Size{600, 400}, Layout: VBox{}, Children: []Widget{ TextEdit{AssignTo: &edit}, }, }.Run() } 

рдЪрд▓рд╛рдПрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдЬреЛ рдкреВрд░реЗ рдлреЙрд░реНрдо рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИред
рдЙрд╕реА рддрд░рд╣, рд╣рдо MainWindow рдореЗрдВ рдЪрд╛рд░ рдмрдЯрди рд▓рд┐рдЦреЗрдВрдЧреЗ: тАЬрдХреЙрдкреАтАЭ, тАЬрдкреЗрд╕реНрдЯтАЭ, тАЬрд▓реЛрдбтАЭ, тАЬрд╕реЗрд╡тАЭ:
 MainWindow{ Title: "GoPad", MinSize: Size{600, 400}, Layout: VBox{}, Children: []Widget{ TextEdit{AssignTo: &edit}, HSplitter{ MinSize: Size{600, 30}, Children: []Widget{ PushButton{ Text: "Copy", }, PushButton{ Text: "Paste", }, PushButton{ Text: "Load", }, PushButton{ Text: "Save", }, }, }, }, }.Run() 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдпрд╣ рдлрд╝реЙрд░реНрдо рдорд┐рд▓рддрд╛ рд╣реИ:

рдЬрдм рд╕рднреА рддрддреНрд╡ рдЙрд╕ рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВ, рддреЛ рдереЛрдбрд╝рд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

рдмрдлрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ

рдмрдЯрди рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрд╡рд╢реНрдпрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬреЛ рдмрдЯрди рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдмрдЯрди рджрдмрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
 PushButton{ Text: "Save", OnClicked: func() { // ... }, }, 

рд╣рдо рдпрд╛ рддреЛ рдПрдХ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡реЙрдХ рд╣рдореЗрдВ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
 walk.Clipboard().SetText("text"); //      walk.Clipboard().Text(); //   

рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдкрд╛рдиреЗ рдпрд╛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
 edit.Text(); //      edit.SetText("text"); //      

рдЕрдм рд╣рдорд╛рд░реЗ рдмрдЯрди рдХреА рд╕рд╛рдордЧреНрд░реА рдЗрд╕ рддрд░рд╣ рд╣реЛ рдЬрд╛рдПрдЧреА:
 PushButton{ Text: "Copy", OnClicked: func() { walk.Clipboard().SetText(edit.Text()); }, }, PushButton{ Text: "Paste", OnClicked: func() { if text, err := walk.Clipboard().Text(); err == nil { edit.SetText(text) } }, }, 


рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрдирд╛ рдФрд░ рдЙрд╕рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛

рдЖрдЗрдП рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рд╕реЗрд╡рд┐рдВрдЧ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрдВрдХреНрд╢рдиреНрд╕ рдореЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рдбрд╛рд▓реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, edit рдЪрд░ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдмрдирд╛рдПрдВред рдЪрд▓реЛ readFromFile рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдБ рдЬреЛ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрд╛рда рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд╝реАрд▓реНрдб рдореЗрдВ readFromFile (рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдЖрдкрдХреЛ import рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "io/ioutil" рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ):
 var edit *walk.TextEdit func readFromFile() { contents,_ := ioutil.ReadFile("file.txt") edit.SetText(string(contents)) } 

рдЗрд╕реА рддрд░рд╣, рд╣рдо рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рд╕реЗрд╡ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
 func saveToFile() { ioutil.WriteFile("file.txt", []byte(edit.Text()), 0x777) } 

рдЕрдм рд╣рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЯрди рд╕реЗ рдмрд╛рдВрдзрдирд╛ рд╣реЛрдЧрд╛:
 PushButton{ Text: "Load", OnClicked: readFromFile, }, PushButton{ Text: "Save", OnClicked: saveToFile, }, 

рдкреБрдирд╢реНрдЪ рдХрд╛рд░реНрдпрдХреНрд░рдо рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рдПрдХ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рд▓рд┐рдЦрддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдо

рд╣рдордиреЗ рд╡реЙрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреЛ рдореЗрдВ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреА рдиреЛрдЯрдмреБрдХ рдмрдирд╛рдИред рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдлрд╝рд╛рдЗрд▓ рдЪрдпрди, рд╕рдВрджрд░реНрдн рдореЗрдиреВ, рдЯреИрдм рдФрд░ рдлреЛрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдЬреЛрдбрд╝реЗрдВред рд╡реЙрдХ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ WinUI рдШрдЯрдХреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред

рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб:

gopad.go
 package main import ( "github.com/lxn/walk" . "github.com/lxn/walk/declarative" "io/ioutil" ) var edit *walk.TextEdit func readFromFile() { contents,_ := ioutil.ReadFile("file.txt") edit.SetText(string(contents)) } func saveToFile() { ioutil.WriteFile("file.txt", []byte(edit.Text()), 0x777) } func main() { MainWindow{ Title: "GoPad", MinSize: Size{600, 400}, Layout: VBox{}, Children: []Widget{ TextEdit{AssignTo: &edit}, HSplitter{ MaxSize: Size{600, 30}, Children: []Widget{ PushButton{ Text: "Copy", OnClicked: func() { walk.Clipboard().SetText(edit.Text()); }, }, PushButton{ Text: "Paste", OnClicked: func() { if text, err := walk.Clipboard().Text(); err == nil { edit.SetText(text) } }, }, PushButton{ Text: "Load", OnClicked: readFromFile, }, PushButton{ Text: "Save", OnClicked: saveToFile, }, }, }, }, }.Run() } 

gopad.exe.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> </assembly> 

build.bat
 go build -ldflags="-H windowsgui" pause 


рд╕рдВрджрд░реНрдн

Source: https://habr.com/ru/post/In205268/


All Articles