خوش اومدی: ) قراره داخل این مطلب یک ماجراجویی ساده داشته باشیم که چطور می‌تونیم با زبان برنامه نویسی گولنگ ( Golang ) یک اپ گرافیکی یا همون GUI بسازیم. پس اگر شما هم دوست دارین یک اپ گرافیکی ساده با Golang بزنید این مطلب رو دنبال کنید! قبل از شروع به کار لازمه که یادآوری کنم آشنایی حداقلی با گولنگ برای درک بهتر این مطلب نیازه. اول از همه بیاین در مورد اینکه قراره چه کاری انجام بدیم صحبت کنیم! ما اینجا قراره با هم یک اپ گرافیکی بسازیم که کاربر بتونه بهش نت چندین ساز مختلف مثل پیانو، ویولن و غیره رو بده و بعد ما اون نت ها رو به صدا در بیاریم یا اینکه به صورت یک فایل صوتی ذخیره اش کنیم. و اسمش رو هم در آخر به یاد موسیقیدان و شاعر ایرانی میزاریم: ) به نظر که جذابه! ریپویی که در موردش قراره صحبت کنیم: اینجا از چه چیز هایی برای ساخت اپ گرافیکی در Golang استفاده می‌کنیم؟ به طور خلاصه ما برای ساخت GUI اپمون از که یک UI toolkit کراس پلتفرم هست استفاده می‌کنیم. خیلی ساده و راحته و برای ساخت اپ هایی که قرار نیست پیچیدگی زیادی توی این لایه داشته باشن مناسبه! به علاوه اینکه کراس پلتفرمه و به ما خیلی راحت اجازه میده که برای سیستم عامل های دیگه هم خروجی بگیریم. و همچنین برای اینکه بتونیم ساز های موسیقی خودمون رو پیاده کنیم از کتابخونه استفاده می‌کنیم. beep یک کتابخونه تمیز و کوچیکه که خیلی راحت به ما توانایی پخش ساز های موسیقی رو میده. لطفا نسخه گولنگ روی سیستمون رو به . و یا بالاتر تغییر بدین. خوب دیگه حالا که فهمیدیم از چی قراره استفاده کنیم و قراره اصلا چی بسازیم وقشه که دست به کار بشیم! شروع ساخت GUI در گولنگ ساختار کلی برنامه قراره به شکل زیر باشه: همینطور که عکس رو نگاه می‌کنید باید بگم که پوشه اصلی پروژه ما: cmd که فایل main اپ اونجا قرار می‌گیره و pkg که خودش شامل پوشه دیگست و قراره قسمت های مختلف اپ رو پیاد سازی کنن هست. اول از همه طبق این درخت پوشه بندی ها و فایل ها رو بسازید تا کم کم پرشون کنیم! و بیاین از go mod استفاده کنیم که بتونیم به راحتی پکیج های اپ رو مدیریت کنیم. برای این کار کافیه از دستور زیر داخل ترمینال استفاده کنید: کد پایین فایل main برنامه هست که در ادامه با هم دیگه بررسی می‌کنیم‌. برای نمایش بهتر می‌تونید از این فایل استفاده کنین. کنین که تمام کد هایی که قراره با هم ببینیم داخل ( func main هستن! اینجا خیلی ساده یک آیدی یونیک برای اپ تعریف کردیم و بعد از اون با SetIcon بهش گفتیم که آیکن برنامه چی باشه، اینجا از آیکن خود fyne استفاده کردیم. خوب اینجا توی خط اول یک پنجره ساختیم و اسم اون رو Jami گذاشتیم. و از خط دوم تا یکی مونده به خاطر یک نوار منو ایجاد کردیم که شامل مواری مثل Full Screen و . است. و این نوار همینطور که داخل تصویر زیر می‌بینید بالای اپ قرار می‌گیره. پس تا اینجا تونستیم یک نوار ساده درست کنیم. حالا می‌خوایم چند تا tab برای برنامه بسازیم تا بتونیم screen های مختلف مون رو توی هرکدوم قرار بدیم. با متد NewTabContainer تب ها و با متد NewTabItemWithIcon هم تب های آیکن دار می‌سازیم. که آرگومان های مورد نیازش اسم تب، آیکن اش و یک fyne . CanvasObject هست، که این همون اسکرین های ما میشه. با این خط هم مکان نمایش تب ها رو معلوم می‌کنیم، شما انتخاب برای مکان نمایش اون ها دارین که ما اینجا حالت پایین صفحه رو انتخاب کردیم. در نهایت خروجی تب ها: حالا تنها کاری که باید انجام بدیم اینکه با استفاده از متد SetContent تب هایی که ساختیم رو برای محتوا پنجره اصلی مون ست کنیم. بعد از اون اندازه اش رو تعیین کنیم و با استفاده از ShowAndRun اپ مون رو اجرا کنیم! اگر که می‌خواید کاربر نتونه سایز صفحه رو تغییر بده، می‌تونید مقدار SetFixedSize رو true بدید، که ما اینجا کامنتش می‌کنیم. ممنون از اینکه تا اینجا همراه بودی: از این قسمت می‌تونید به قسمت های دیگه این مطلب دسترسی داشته باشین: