рдмрд╛рд╣рд░реА - рдЧреЛрд▓рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬреАрдпреВрдЖрдИ

рдмрдзрд╛рдИ, рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ!

рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдпрд╣рд╛рдВ GUI рдЪреМрдЦрдЯреЗ рдкрд░ рдПрдХ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдерд╛ - рдПрдХ рдереНрд░реЗрдб рдкрд░ , рдЬрд┐рд╕рдиреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП GUI рдЪреМрдЦрдЯреЗ рдмрдирд╛рдиреЗ рдХреА рддрдХрдиреАрдХ рдХреА рдкреЗрд╢рдХрд╢ рдХреА, рдЬреЛ рдПрдХ рдмрд╛рд╣рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ GUI рд╕рд░реНрд╡рд░ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдиреЗ рд╡рд╛рд▓реА рдмрд╛рд╣рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ / tcp / ip рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдпрд╣рд╛рдВ рдореИрдВ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдПрдХ рдареЛрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рдЧреЛрд▓рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЬреАрдпреВрдЖрдИ рдврд╛рдВрдЪрд╛ - рдмрд╛рд╣рд░реА ред

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

рдореБрдЭреЗ рдЗрд╕ рд╕реВрдЪреА рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдкрд░ рджреЛ рд╕реНрдерд┐рддрд┐ - рдРрдк рдФрд░ рд╡реЙрдХ рдХреЛ рддреБрд░рдВрдд рдкрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЛрдВрдиреЗ html / css / рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдПрдХ рд╡реЗрдм рдкреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреБрдЫ рдЕрд╕рд╛рдорд╛рдиреНрдп рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рд╡реЗ рдЕрдкрдиреЗ рд╕рд╛рде рдХрд╛рдлреА рднрд╛рд░реА рдЗрдВрдЬрди рдЦреАрдВрдЪрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреЛ-рдПрд╕реНрдЯрд┐рд▓рдХреНрдЯреНрд░реЙрди рдФрд░ рдЧреМрдВрдб рдХреНрд░рдорд╢рдГ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдФрд░ nw.js рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ, рдФрд░ рдпреЗ, рдмрджрд▓реЗ рдореЗрдВ, рдиреЛрдб.рдЬреЗрдПрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рддрдирд╛ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЬрдм рддрдХ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЧреЛ-рд╕реНрдХреЗрдЯрд░ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ: рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдЦрдбрд╝рд╛ рд╕реНрдХреЗрдЯрд░ рдЗрддрдирд╛ рд░рд╛рдХреНрд╖рд╕реА рдирд╣реАрдВ рд╣реИред

Go-gtk рдФрд░ gotk3 GTK рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рдпреЗ, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рдЧрдП рдкреИрдХреЗрдЬ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рднреА рдордирд╛ рдХрд░ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдЬреАрдЯреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдЬреАрдЯреАрдХреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рддрд╣рдд рдореВрд▓ рдирд╣реАрдВ рджрд┐рдЦрддреА рд╣реИрдВред рдХреНрдпреВрдЯреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЪреАрдЬ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдмрд▓реНрдХрд┐ рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рдЖрдпрд╛рдо ... рдЬрдм рдореИрдВрдиреЗ рдкрдврд╝рд╛: "рдЖрдкрдХреЛ 2.5 рдЬреАрдмреА рдореБрдлреНрдд рд░реИрдо (рдЬреЛ рдХрд┐ рдХреЗрд╡рд▓ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рдЖрд╡рд╢реНрдпрдХ рд╣реИ) рдФрд░ рдХрдо рд╕реЗ рдХрдо 5 рдЬреАрдмреА рдореБрдлреНрдд рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ", рдЕрдВрддрд┐рдо рд╕рдВрджреЗрд╣ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ред рдЬрд╛рдУ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рджрд╕ рдЧреБрдирд╛ рдХрдо рдЬрдЧрд╣ рд▓реЗрддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ: "рдЕрдкрдиреЗ рдПрд▓рдЬреАрдкреАрдПрд▓ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рд╕рд╛рде рдпрд╣ рдмрдВрдзрди рдмрдВрдж рд╕реНрд░реЛрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдо рдЬрдирддрд╛ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ"ред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реВрдЪреА рд╕реЗ рдХреНрдпрд╛ рдмрдЪрд╛ рд╣реИ? Ui рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдордзреНрдп-рдЕрд▓реНрдлрд╛ рдЪрд░рдг рдореЗрдВ рд╣реИред Fyne рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рддреИрдпрд╛рд░ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рд╢рд░реНрдордирд╛рдХ рдерд╛, рдХрд┐ рдПрдХ рддрд░рдл, "Fyne рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ", рдФрд░ рджреВрд╕рд░реА рддрд░рдл, "EFL рд╡рд┐рдВрдбреЛ рдкреИрдХреЗрдЬ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрд╣реБрдд рдкреБрд░рд╛рдиреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк Fyne рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рднрд╛рдЧреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ - рдЬреИрд╕реЗред рд╡реИрд╕реЗ, рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ EFL (рдЧреНрд░рд╛рдлрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬрд┐рд╕ рдкрд░ Fyne рдЖрдзрд╛рд░рд┐рдд рд╣реИ) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ 5GB рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЗрди рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдФрд░ рдЙрдирдХреЗ рд╢реНрд░рдо рдХреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╕рдореНрдорд╛рди рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪреБрдирд╛ рдФрд░, рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╡реЗрдХ рдХреЗ рд╕рд╛рде, рдЬреЛ рдореИрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЙрд╕рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рд╛ - рдПрдХ рдирдпрд╛ рдЬреАрдпреВрдЖрдИ рдврд╛рдВрдЪрд╛ - рдмрд╛рд╣рд░реА рд▓рд┐рдЦрдирд╛ред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рдмрд╛рд╣реНрдп рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ GUI рддрддреНрд╡реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, GUI рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ GuiServer рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╛рд╣рд░реА рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ tcp / ip рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рд╡рд┐рдВрдбреЛрдЬрд╝ рдФрд░ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ / рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ, рдЗрдирдХрд╛ рд╣реЗрд░рдлреЗрд░ рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐, рдФрд░ рдЗрд╕рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ рдЬреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╢рд┐рд▓рд╛рд▓реЗрдЦ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд┐рдбрд╝рдХреА рдмрдирд╛рддрд╛ рд╣реИ рд╣реИрд▓реЛ, рджреБрдирд┐рдпрд╛:

package main import egui "github.com/alkresin/external" func main() { if egui.Init("") != 0 { return } pWindow := &egui.Widget{X: 100, Y: 100, W: 400, H: 140, Title: "My GUI app"} egui.InitMainWindow(pWindow) pWindow.AddWidget(&egui.Widget{Type: "label", X: 20, Y: 60, W: 160, H: 24, Title: "Hello, world!" }) pWindow.Activate() egui.Exit() } 

Init () рдлрд╝рдВрдХреНрд╢рди GuiServer рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдЗрд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЧрд╛рдЗрд╕реЗрд╡рд░ рдХрд╛ рдирд╛рдо рдФрд░ рдЗрд╕рдХрд╛ рдкрде, рдЖрдИрдкреА рдкрддрд╛ рдФрд░ рдкреЛрд░реНрдЯ, рдФрд░ рд▓реЙрдЧрд┐рдВрдЧ рд╕реНрддрд░ред

InitMainWindow () рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛ рдмрдирд╛рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ AddWidget () - рдкреНрд░рдХрд╛рд░ рд▓реЗрдмрд▓ рдХрд╛ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ () - рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рд╡рд┐рдВрдбреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИред
рд╡рд┐рдиреНрдбреЛрдЬрд╝ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╡рд┐рдВрдбреЛ рдФрд░ рд╡рд┐рдЬреЗрдЯ рджреЛрдиреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд░рдЪрдирд╛ рдирд╣реАрдВ рдмрдирд╛рдИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЧреЛ рдореЗрдВ рд╡рд┐рд░рд╛рд╕рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ рдирдХреНрд╢рд╛ [рд╕реНрдЯреНрд░рд┐рдВрдЧ] рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреБрдг рд╣реИрдВ:

 type Widget struct { Parent *Widget Type string Name string X int [...] Font *Font AProps map[string]string aWidgets []*Widget } 

рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рддрд░реАрдХреЛрдВ рдореЗрдВ рдкрд░рд┐рдЪрд┐рдд AddWidget (), рд╕рд╛рде рд╣реА SetText (), SetImage (), SetParam (), SetColor (), SetFont (), GetText (), Move (), Enable (), рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдореИрдВ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SetCallBackProc () рдФрд░ SetCallBackFunc () рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдпрд╣рд╛рдВ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ, рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдЕрдиреБрдЪрд┐рдд рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд╣реВрдВрдЧрд╛:

рдореЗрдиреВ (), MenuContext (), EndMenu (), AddMenuItem (), AddMenuSeparator () - рдореЗрдиреВ, рдореБрдЦреНрдп рдпрд╛ рд╕рдВрджрд░реНрдн рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рд╕реЗрдЯред
EvalProc (sCode string), EvalFunc (sCode string) рдЧреБрдЗрд╕реЗрд░рд╡рд░ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╛рд░реНрдмрд░ рдХреЛрдб рдЯреБрдХрдбрд╝рд╛ (рдмрд╣реБ-рд░реЗрдЦрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ) рдкрд╛рд╕ рдХрд░рддреА рд╣реИ - рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
OpenForm (sPath string) - HwGui рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ xml рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╡рд┐рдВрдбреЛ рдмрдирд╛рддрд╛ рд╣реИред
OpenReport (sPath string) - HwGui Designer рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ xml рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЫрд╛рдкрддреА рд╣реИред
MsgInfo (), ..., SelectFile (), SelectColor (), SelectFont () - рдорд╛рдирдХ рд╕рдВрджреЗрд╢ рдмреЙрдХреНрд╕ рдФрд░ рд╕рдВрд╡рд╛рдж рдХреЙрд▓ рдХрд░реЗрдВред
InitPrinter () рдФрд░ рдкреНрд░рд┐рдВрдЯрд░ рд╕рдВрд░рдЪрдирд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ: рдХрд╣реЛ (), рдмреЙрдХреНрд╕ (), рд░реЗрдЦрд╛ (), рдЖрджрд┐ рдкреНрд░рд┐рдВрдЯрд░ рдХреЛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рд┐рдВрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреА рдкреВрд░реА рд╕реВрдЪреА рд╣реИ:
рд▓реЗрдмрд▓, рдПрдбрд┐рдЯ, рдмрдЯрди, рдЪреЗрдХ, рд░реЗрдбрд┐рдпреЛ, рд░реЗрдбрд┐рдпреЛрдЧреНрд░реЙ, рдЧреНрд░реБрдк, рдХреЙрдореНрдмреЛ, рдмрд┐рдЯрдореИрдк, рд▓рд╛рдЗрди, рдкреИрдирд▓ (рдЗрд╕ рдкрд░ рдЕрдиреНрдп рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдкреИрдирд▓рдЯреЙрдк, рдкреИрдирд▓рдмреЛрдЯ, рд╕реНрд╡рдпрдВ (рдмрдЯрди рд╡рд╛рдкрд╕ рд▓реЗрдирд╛), рд╕реНрдкреНрд▓рд┐рдЯрд░, рдЕрдкрдбрд╛рдЙрди, рдЯреНрд░реА, рдкреНрд░реЛрдЧреНрд░реЗрд╕, рдЯреИрдм, рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ (рддрд╛рд▓рд┐рдХрд╛, рдЗрд╕реЗ рдХрдИ рдХреЙрд▓ рдХрд░реЗрдВ), рд╕реАрдбрд┐рдЯ (рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ), рдорд╣реАрдирд╛ред

рдЙрди рд╕рднреА рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде inwidg.go рдХреЗ init () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн - рдпреЗ рдЧреБрдг Widget.AProps рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реЗ рдХрдИ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдЕрдиреНрдп рдЧреБрдг рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдирдореЗрдВ рд╕рдореГрджреНрдз рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ; рдЙрдиреНрд╣реЗрдВ рд╕реЗрдЯрдкрд░рдо () рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрд▓рдЧ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдмрд╛рд╣рд░реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЫреЛрдЯрд╛ рдирд┐рдХрд▓рд╛, рдпрд╣ рд╢реБрджреНрдз рдЧреЛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдХреБрдЫ рдорд╛рдирдХ рд╡рд╛рд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдирд╣реАрдВ рдЦреАрдВрдЪрддрд╛ рд╣реИред рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо GuiServer рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдЬрд┐рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ / рдпреВрдирд┐рдХреНрд╕, рдореИрдХ рдУрдПрд╕ рдХреЗ рддрд╣рдд рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд╕реБрд╡рд┐рдзрд╛ рдЗрд╕ рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде рдареАрдХ рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдпрд╛ рддреЛ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╛ рдореЗрд░реА рд╕рд╛рдЗрдЯ рд╕реЗ рд╕рдорд╛рдкреНрдд рдПрдХ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдкреАрдПрдЯреАрдПрдЪ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбрд╛рд▓реЗрдВред рд╕рдВрдпреЛрдЧ рд╕реЗ, рдпрд╣ рдЫреЛрдЯрд╛ рд╣реИ - рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдбреЗрдврд╝ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рддреАрдиред

рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЫреЛрдЯреЗ рдИрдЯреВрдЯреЛрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдКрдВрдЧрд╛ - рдЧреЛрд▓рдВрдЧ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ред рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдПрдХ рдкреЗрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреЛ рдкрд░ рдХреЛрдб рдЕрдВрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдХреЛрдб рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рдЖрд░рд╛рдорджрд╛рдпрдХред рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдлрд┐рд░ рд╕реЗ рднрд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдирдП рд╕рдВрдЧреНрд░рд╣ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдм рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ (рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ) рдП рдЯреВрд░ рдСрдл рдЧреЛ, рдЧреЛ рдмрд╛рдп рдЙрджрд╛рд╣рд░рдг рдФрд░ рдХрдИ рдЙрджрд╛рд╣рд░рдг рдмрд╛рд╣рд░реА рдкрд░ рд╣реАред ETutor рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреЛ рдкрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддреЛ, рд╕реНрдХреНрд░реАрдирд╢реЙрдЯред

рд╡рд┐рдВрдбреЛрдЬ 10:



рдбреЗрдмрд┐рдпрди, рд╕реВрдХреНрддрд┐:



рдФрд░ рдЕрдВрдд рдореЗрдВ, рд▓рд┐рдВрдХ:

рдЧрд┐рдердм рдкрд░ рдмрд╛рд╣рд░реА
рдЧреАрдереВрдм рдкрд░ рдЧрд╛рдЗрд╕рд░
рдЧрд┐рддреБрдм рдкрд░ рдПрдЯреВрдЯрд░
рдореЗрд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ GuiServer рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреГрд╖реНрда рдЬрд╣рд╛рдБ рдЖрдк рддреИрдпрд╛рд░ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
https://groups.google.com/d/forum/guiserver - GuiServer рдФрд░ External рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдореВрд╣
Habr├й рдкрд░ GuiServer рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ

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


All Articles