Python Programming Development Tutorial for Myanmar
Python Programming Development Myanmar Tutorials
WHITE STAR MYANMAR Education Center မှ သင်ကြားပြသရန်ရည်ရွယ်ထားသော Python programming language နဲ့သက်ဆိုင်သော Tutorials များကို လေ့လာ၊ ဆွေးနွေး၊ မျှဝေမှု ပြုလုပ်သွားမှာ ဖြစ်ပါတယ်။ Youtube Channel -> https://www.youtube.com/c/WhiteStarMyanmar
Using “pip” in Python development
**************************************
“pip” အသုံးပြုခြင်းကို လေ့လာကြပါမယ်။ Odoo Development ကဲ့သို့ Python ကို အသုံးပြုလုပ်ဆောင်သော Software Development တွေမှာ “pip” အသုံးပြုပြီး လိုအပ်သော Third-party modules (site-packages) တွေကို ထည့်သွင်းအသုံးပြုကြရလေ့ရှိပါတယ်။ Third-party modules တွေ ဆိုတာကတော့ သက်ဆိုင်ရာ Software Development တွေရဲ့ လိုအပ်ချက်အရ ဖန်တီးထားသော Python packages တွေ ဖြစ်ပါတယ်။ Python modules သည် မကြာခဏပြုလုပ်ရလေ့ရှိသော လုပ်ဆောင်မှုတွေအတွက် ရည်ရွယ်ဖန်တီးထားသော အရာတွေလို့ ဆိုနိုင်မှာဖြစ်ပါတယ်။ Python တွင်လည်း Standard packages တွေ ပါရှိပြီး ဖြစ်ပါတယ်။ Standard packages တွေအပြင် လိုအပ်ချက်အရ ထပ်ပြီးထည့်သွင်းအသုံးပြုဖို့လိုအပ်သည့် Third-party modules တွေကို “pip” command အသုံးပြုပြီး Installation ပြုလုပ် အသုံးပြုနိုင်မှာဖြစ်ပါတယ်။
Python 3.4.x version မှစပြီး Python ကို Install ပြုလုပ်လိုက်တာနဲ့ “pip” ကို အသုံးပြုနိုင်ပြီ ဖြစ်ပါတယ်။
>pip - -version
ဖော်ပြထားသော Command ကို Command Prompt/Terminal တွင်ထည့်သွင်းပြီး စစ်ဆေးနိုင်မှာဖြစ်ပါတယ်။
မှတ်ချက် - အကြောင်းအမျိုးမျိုးကြောင့် “pip” ကို မထည့်သွင်းရသေးဘူးဆိုရင် “>python –m ensurepip” command ဖြင့် ထည့်သွင်းနိုင်ပါတယ်။ https://bootstrap.pypa.io/get-pip.py တွင် get-pip.py file ကို Download ပြုလုပ်ပြီး၊ “>python get-pip.py” command ဖြင့်လည်း ထည့်သွင်းနိုင်မှာဖြစ်ပါတယ်။
>pip install module_name
ဖော်ပြထားသော Command ကို အသုံးပြုပြီး လိုအပ်သော Python modules တွေကို Install ပြုလုပ်နိုင်မှာပါ။
မှတ်ချက် - အချို့သော Third-party Python modules တွေကို Install ပြုလုပ်သည့်အခါ “python –m” ထည့်ပေးဖို့ လိုအပ်တတ်ပါတယ်။ (ဉပမာ - >python –m pip install module_name)
>pip install module_name==1.1.1
ဖော်ပြထားသော Command ဖြင့် Python module ရဲ့ Specific version ကို Install ပြုလုပ်နိုင်မှာဖြစ်ပါတယ်။
မှတ်ချက် - Install ပြုလုပ်မည့် Module ရဲ့ Specific version ကို မသတ်မှတ်ထားရင် Latest အဖြစ်ဆုံးသော Suitable version ကို Install ပြုလုပ်စေမှာဖြစ်ပါတယ်။
>pip install “module_name>=1.1.1”
ဖော်ပြထားသော Command ဖြင့် Install ပြုလုပ်မည့် Module ရဲ့ Minimum version ကို သတ်မှတ်နိုင်မှာပါ။
မှတ်ချက် - Module version ကို Minimum, Maximum versions တွေ သတ်မှတ်ပြီး Install ပြုလုပ်သည့်အခါ Double-quote ဖြင့် သတ်မှတ်ပေးရတာကို သတိပြုစေချင်ပါတယ်။ (ဉပမာ - “module_name>=1.1.1”)
>pip install - -upgrade module_name
ဖော်ပြထားသော Command ဖြင့် Install ပြုလုပ်ထားပြီးသော Module version ကို Upgrade ပြုလုပ်နိုင်မှာပါ။
မှတ်ချက် - Installed module ကို ထပ်ပြီး Install ပြုလုပ်ရင် “Already Installed” ဖော်ပြနေမှာဖြစ်ပါတယ်။ Module version ကို Upgrade ပြုလုပ်လိုရင် “pip install - -upgrade module_name” ဖြင့် ပြုလုပ်နိုင်မှာပါ။
>pip freeze > requirements.txt
ဖော်ပြထားသော Command ဖြင့် Software Development အတွက် “pip install” ပြုလုပ်ထားသော Python modules တွေကို Text file အနေနဲ့ List ပြုလုပ်နိုင်မှာဖြစ်ပါတယ်။
မှတ်ချက် - Software Projects တွေအတွက် လိုအပ်သော Python modules တွေကို "requirements.txt" file အနေနဲ့ သတ်မှတ်ထားခြင်းအားဖြင့် Setup ပြုလုပ်ရတာ လွယ်ကူစေမှာဖြစ်ပါတယ်။
>pip install –r requirements.txt
ဖော်ပြထားသော Command ဖြင့် “requirements.txt” file ထဲက Modules တွေကို Install ပြုလုပ်နိုင်မှာပါ။
မှတ်ချက် - လိုအပ်သော Python modules တွေကို တစ်ခုခြင်း Install ပြုလုပ်တာထက်၊ "requirements.txt" file ကို အသုံးပြုပြီး Install ပြုလုပ်ခြင်းက လွယ်ကူမြန်ဆန်စေမှာဖြစ်ပါတယ်။
*** လေ့လာသူတွေအားလုံး
ကျန်းမာ၊ ဘေးကင်း၊ လုံခြုံကြပါစေ။
Python Programming Language အတွက် Tutorials တွေကတော့ လက်ရှိအချိန်မှာ Sharing မပြုလုပ်ဖြစ်သေးပါဘူးခင်ဗျာ။
Odooo Tutorials တွေကိုတော့ ဖော်ပြထားသော Page တွင် Sharing လုပ်ပေးနေပါတယ်။
https://www.facebook.com/odooerpdevelopment
************************
မြန်မာဘာသာဖြင့် လေ့လာရေးသားထားသော Odoo Ebooks တွေကိုလည်း မှာယူလေ့လာနိုင်ပါတယ်ခင်ဗျာ။
*** လေ့လာသူတွေအားလုံး
ကျန်းမာ ဘေးကင်း၊ လုံခြုံကြပါစေ။
https://www.facebook.com/100064051298756/posts/524798379665201/?app=fbl
Odoo ERP development အတွက် မြန်မာဘာသာဖြင့် (အဓိက) လေ့လာရေးသားထားပြီးသော Ebooks များ...
1) Odoo14 ERP Workflow Volume 1
**********Myanmar Ebook**********
စာမျက်နှာပေါင်း 588 pages ရှိပြီး၊ File size: 130 MB ရှိသော မြန်မာဘာသာဖြင့် (အဓိက) ရေးသားထားသည့် Ebook ဖြစ်ပါတယ်။ စာအုပ်ထဲတွင်...
*** Prepare & Config: Odoo system ကို အသုံးပြု/လေ့လာနိုင်ဖို့ Computer (Windows OS) တွင် ပြင်ဆင်သတ်မှတ်ခြင်း
*** Purchase application: ကုန်ပစ္စည်းဝယ်ယူခြင်းဆိုင်ရာ လုပ်ဆောင်မှုများ
*** Sales application: ကုန်ပစ္စည်း (လက္ကား) ရောင်းချခြင်းဆိုင်ရာ လုပ်ဆောင်မှုများ
စသည့်အကြောင်းအရာများကို Odoo14 Community Edition ကို အသုံးပြုပြီး လေ့လာရေးသားထားပါတယ်။
$$$ Ebook အတွက် မြန်မာကျပ်ငွေ 5,000 (ငါးထောင်) ကျပ် သတ်မှတ်ထားပါတယ်။
=======================
2) Odoo14 ERP Workflow Volume 2
**********Myanmar Ebook**********
စာမျက်နှာပေါင်း 1008 pages ရှိပြီး၊ File size: 227 MB ရှိသော မြန်မာဘာသာဖြင့် (အဓိက) ရေးသားထားသည့် Ebook ဖြစ်ပါတယ်။ စာအုပ်ထဲတွင်...
*** Point of Sale application: ကုန်ပစ္စည်း (လက်လီ) ရောင်းချခြင်းဆိုင်ရာ လုပ်ဆောင်မှုများ
*** Inventory application: ကုန်ပစ္စည်းစာရင်း စီမံခန့်ခွဲခြင်းဆိုင်ရာလုပ်ဆောင်မှုများ
စသည့်အကြောင်းအရာများကို Odoo14 Community Edition ကို အသုံးပြုပြီး လေ့လာရေးသားထားပါတယ်။
$$$ Ebook အတွက် မြန်မာကျပ်ငွေ 5,000 (ငါးထောင်) ကျပ် သတ်မှတ်ထားပါတယ်။
=======================
3) Odoo13 ERP Workflow Volume 1
**********Myanmar Ebook**********
စာမျက်နှာပေါင်း 353 pages ရှိပြီး၊ File size: 65 MB ရှိသော မြန်မာဘာသာဖြင့် (အဓိက) ရေးသားထားသည့် Ebook ဖြစ်ပါတယ်။ စာအုပ်ထဲတွင်...
*** Purchase application: ကုန်ပစ္စည်းဝယ်ယူခြင်းဆိုင်ရာ လုပ်ဆောင်မှုများ
*** Sales application: ကုန်ပစ္စည်း (လက္ကား) ရောင်းချခြင်းဆိုင်ရာ လုပ်ဆောင်မှုများ
*** Point of Sale application: ကုန်ပစ္စည်း (လက်လီ) ရောင်းချခြင်းဆိုင်ရာ လုပ်ဆောင်မှုများ
စသည့်အကြောင်းအရာများကို Odoo13 Community Edition ကို အသုံးပြုပြီး လေ့လာရေးသားထားပါတယ်။
$$$ Ebook အတွက် မြန်မာကျပ်ငွေ 5,000 (ငါးထောင်) ကျပ် သတ်မှတ်ထားပါတယ်။
=======================
4) Odoo13 ERP Workflow Volume 2
**********Myanmar Ebook***********
စာမျက်နှာပေါင်း 418 pages ရှိပြီး၊ File size: 100 MB ရှိသော မြန်မာဘာသာဖြင့် (အဓိက) ရေးသားထားသည့် Ebook ဖြစ်ပါတယ်။ စာအုပ်ထဲတွင်...
*** Inventory application: ကုန်ပစ္စည်းစာရင်း စီမံခန့်ခွဲမှုဆိုင်ရာလုပ်ဆောင်မှုများ
စသည့်အကြောင်းအရာများကို Odoo13 Community Edition ကို အသုံးပြုပြီး လေ့လာရေးသားထားပါတယ်။
$$$ Ebook အတွက် မြန်မာကျပ်ငွေ 5,000 (ငါးထောင်) ကျပ် သတ်မှတ်ထားပါတယ်။
=======================
5) Odoo13 ERP Workflow Volume 3
**********Myanmar Ebook***********
စာမျက်နှာပေါင်း 507 pages ရှိပြီး၊ File size: 120 MB ရှိသော မြန်မာဘာသာဖြင့် (အဓိက) ရေးသားထားသည့် Ebook ဖြစ်ပါတယ်။ စာအုပ်ထဲတွင်...
*** Invoicing application: ငွေပေးချေ/ရယူခြင်း စီမံခန့်ခွဲမှုဆိုင်ရာလုပ်ဆောင်မှုများ
*** Accounting basic features: စာရင်းအင်းဆိုင်ရာ အခြေခံလုပ်ဆောင်မှုများ
စသည့်အကြောင်းအရာများကို Odoo13 Community Edition ကို အသုံးပြုပြီး လေ့လာရေးသားထားပါတယ်။
$$$ Ebook အတွက် မြန်မာကျပ်ငွေ 5,000 (ငါးထောင်) ကျပ် သတ်မှတ်ထားပါတယ်။
မှတ်ချက် - Odoo13 ERP Workflow Ebook (Volume 1 + 2 + 3) သုံးအုပ်ပေါင်းကို မှာယူလေ့လာပါက မြန်မာကျပ်ငွေ 10,000 (တစ်သောင်း) ကျပ်သာ ကျသင့်မှာဖြစ်ပါတယ်။
===================
6) Odoo12 ERP Development
****Free Myanmar Ebook****
စာမျက်နှာပေါင်း 326 pages ရှိပြီး၊ File size: 44 MB ရှိသော မြန်မာဘာသာဖြင့် (အဓိက) ရေးသားထားသည့် Ebook ဖြစ်ပါတယ်။ စာအုပ်ထဲတွင်...
*** Odoo ERP system အတွက် Technical development (Module structure) ဆိုင်ရာလုပ်ဆောင်မှုများကို Odoo 12 Community Edition ကို အသုံးပြုပြီး လေ့လာရေးသားထားပါတယ်။
$$$ Ebook အတွက် ငွေကြေးတစ်စုံတစ်ရာ သတ်မှတ်ထားခြင်းမရှိပါ။
===================
မှာယူလေ့လာလိုသူတွေအနေနဲ့ …
**ဖော်ပြထားသော KBZPay, AYAPay, WavePay accounts တွေကို ကျသင့်ငွေပေးချေထားသော Screenshot
**မှာယူလေ့လာလိုသော Ebook အမည်
**Ebooks တွေ ပေးပို့ရမည့် Viber အသုံးပြုသော Phone number
စသည်တို့ကို Page message box မှတစ်ဆင့် စာပေးပို့မှာယူနိုင်ပါတယ်ခင်ဗျာ။
မှတ်ချက် - File size limitation ပြဿနာတွေကို အဆင်ပြေစေဖို့အတွက် Viber ကို အသုံးပြုပြီး Ebooks တွေ ပေးပို့ရခြင်းဖြစ်ပါတယ်။
*** Payment Accounts ***
KBZPay -> 09795540959
AYAPay -> 09754898500
WavePay -> 09754898500
****************************
လေ့လာဆွေးနွေးမှုတွေ ဆက်လက်ပြုလုပ်နိုင်ဖို့အတွက် ငွေကြေးအနည်းငယ် သတ်မှတ်ထားရတာဖြစ်ပြီး၊ သတ်မှတ်ထားသော ငွေပမာဏကလည်း လေ့လာသူတွေအတွက် အဆင်ပြေမယ်လို့ ယူဆပါတယ်။
***လေ့လာသူတွေအားလုံး
ကျန်းမာ၊ ဘေးကင်း၊ လုံခြုံကြပါစေ။
။။။။။။။။။။။။။။။။။။။။။။။။။။။။။။။။။။။။။
Ebook contents တွေကို Comments တွင် ဖော်ပြထားပါတယ်။
Python programming နဲ့သက်ဆိုင်သော Tutorials တွေကို လေ့လာဆွေးနွေးပြီး page တွင် post တင်ပေးနိုင်အောင် ကြိုးစားနေပါတယ် ခင်ဗျာ။
ယခုလောလောဆယ် Odoo ERP tutorials တွေကို လေ့လာရေးသားနေသည့်အတွက် Python programing tutorials တွေကို မလုပ်ဖြစ်သေးတာပါ။
Odoo ERP Development tutorials တွေကို ဖော်ပြထားသော Page တွင် ဝင်ရောက်လေ့လာနိုင်ပါတယ်။
https://www.facebook.com/odooerpdevelopment
*** လေ့လာသူတွေအားလုံး
ကျန်းမာ၊ ဘေးကင်း၊လုံခြုံကြပါစေ။
Odoo ERP Development Tutorial for Myanmar Odoo ERP Development Tutorial for Myanmar
https://www.facebook.com/100064051298756/posts/436860671792306/?app=fbl
White Star Myanmar - YouTube Education Center.
Tutorials post တွေ မတင်ဖြစ်ကြာ တော်တော်လေး ကြာခဲ့ပါပြီ။
Python Programming နဲ့ ပက်သက်သည့် Coding & Concept Tutorials တွေကို မကြာခင် တင်ပေးသွားပါမယ်။
***လေ့လာသူတွေအားလုံး
ကျန်းမာ၊ ဘေးကင်း၊ လုံခြုံကြပါစေ။
အသုံးများသော Odoo apps တွေရဲ့ အလုပ်လုပ်ဆောင်ပုံ Workflow တွေကို လေ့လာရေးသားထားသော Ebooks တွေ ဖြစ်ပါတယ်။
*******
https://www.facebook.com/100484124980266/posts/541592420869432/?app=fbl
Python Programming Development Tutorial for Myanmar updated their info in the about section.
WHITE STAR MYANMAR မှ လေ့လာဆွေးနွေးရေးသားထားသော နည်းပညာ စာအုပ်ဖြစ်ပါသည်။
ကျန်းမာ ဘေးကင်း လုံခြုံကြပါစေ။
********************
Odoo ERP Workflow Volume 1 Ebook ကို ရေးသားပြုစုထားပါတယ်။ Volume 1 မှာ Purchase, Sales, Point of Sale application တွေရဲ့ workflow တွေကို လေ့လာဆွေးနွေးထားပါတယ်။ အချိန်များစွာပေးပြီး ရေးသားဖန်တီးထားရတာ ဖြစ်တဲ့အတွက် Ebook ကို မှာယူလေ့လာလိုသူတွေအနေနဲ့ Page Message Box မှတစ်ဆင့် ဓာတ်ပုံတစ်ပုံကို ပေးပို့ပေးစေချင်ပါတယ်။
Ebook ကို မှာယူလေ့လာလိုသူတွေ ပေးပို့ရမယ့် ပုံကတော့...
မိမိနေထိုင်ရာပတ်ဝန်းကျင်တွင်ရှိသော ဆင်းရဲနွမ်းပါးသူ၊ အကူအညီလိုအပ်နေသူတွေကို ငွေကျပ် ၅,၀၀၀ (ငါးထောင်) ဝန်းကျင်ခန့်တန်ဖိုးရှိသော အစားအသောက်၊ ဆေးဝါး၊ အသုံးအဆောင် စသည်တို့ကို မျှဝေလှူဒါန်းမှုပြုလုပ်ထားသော ဓာတ်ပုံတစ်ပုံကို Page Message Box ကို ပေးပို့ရမှာဖြစ်ပါတယ်။ ပုံထဲတွင် "လူပုံ" ပါသည်ဖြစ်စေ၊ မပါသည်ဖြစ်စေ အဆင်ပြေပါတယ်။ ရိုးသားမှုရှိသော ပုံတစ်ပုံတော့ ဖြစ်စေချင်ပါတယ်။
***
ယခုကဲ့သို့ပြုလုပ်ခြင်းအားဖြင့် အကူအညီလိုအပ်နေသူတွေကို ထောက်ပံ့ကူညီရာရောက်သလို လေ့လာသူတွေလည်း ကုသိုလ်ရရှိမှာဖြစ်တဲ့အတွက်... Ebook ကို မှာယူလိုသူတွေအနေနဲ့ မျှဝေလှူဒါန်းမှုပြုလုပ်ထားသောပုံကို (မဖြစ်မနေ) ပို့ပေးစေချင်ပါတယ်။
***
မျှဝေလှူဒါန်းထားသောဓာတ်ပုံတစ်ပုံနဲ့အတူ... Please send me "Odoo ERP Workflow Volume 1" စာသား၊ Viber အသုံးပြုသော phone number (Ooredoo, Telenor) စသည်တို့ကို Page Message Box မှတစ်ဆင့် ပေးပို့ မှာယူနိုင်ပါတယ်ခင်ဗျာ။
နိုင်ငံတော် သမ္မတ ဉီးဝင်းမြင့်သည်သာ နိုင်ငံတောင်၏ တရားဝင်(သမ္မတ) အစိုးရဖြစ်ပါသည်........
“ပြည်ထောင်စုလွှတ်တော်ကိုယ်စားပြုကော်မတီ - Committee Representing Pyidaungsu Hluttaw(CRPH)” ဖွဲ့စည်း
ရန်ကုန်၊ ၀၅ ဖေဖော်ဝါရီလ ၂၀၂၁
-----------------------------
၂၀၂၀ ခုနှစ် ပါတီစုံဒီမိုကရေစီ အထွေထွေရွေးကောက်ပွဲ၏ ရွေးကောက်ခံ ပြည်ထောင်စုလွှတ်တော်ကိုယ်စားလှယ်များသည် ယနေ့ ၀၅ ဖေဖော်ဝါရီလ ၂၀၂၀ နေ့တွင် ပြည်ထောင်စုလွှတ်တော်ကိုယ်စားလှယ်များအရေးပေါ်အစည်းအဝေးကို Online Conferencing System ဖြင့် ကျင်းပခဲ့ကြပြီး ပြည်ထောင်စုလွှတ်တော်ကိုယ်စားလှယ်များ၏ သဘောထားထုတ်ပြန်ကြေညာချက် (၂/၂၀၂၁) ကို ထုတ်ပြန်ကြေညာခဲ့သည်။ အဆိုပါ ထုတ်ပြန်ကြေညာချက်တွင် ပြည်သူတို့ယုံကြည်အပ်နှံလိုက်သော တာဝန်များကို ဦးလည်မသုန်ထမ်းဆောင်နိုင်ရေး၊ နိုင်ငံတော်သမ္မတနှင့် နိုင်ငံတော်၏ အတိုင်ပင်ခံပုဂ္ဂိုလ်အပါအဝင် ဖမ်းဆီးထားသူများအားလုံး အမြန်ဆုံးနှှင့် ချွင်းချက်မရှိလွတ်မြောက်ရေး၊ ပြည်ထောင်စုလွှတ်တော်၏ ပုံမှန်လုပ်ငန်းများလုပ်ကိုင်နိုင်ရေးအတွက် လိုအပ်သော ကိစ္စရပ်များ ဆောင်ရွက်နိုင်ရန်အတွက် “ပြည်ထောင်စုလွှတ်တော်ကိုယ်စားပြုကော်မတီ - Committee Representing Pyidaungsu Hluttaw(CRPH)” ကိုဖွဲ့စည်းလိုက်ကြောင်းပါဝင်သည်။ အစည်းအဝေးသို့ ပြည်ထောင်စုလွှတ်တော်ကိုယ်စားလှယ် ၂၉၈ ဦးတက်ရောက်ခဲ့ပြီး ဒိန်းမတ်၊ ဆွီဒင်၊ အမေရိကန်ပြည်ထောင်စု နှင့် ချက်ရီပက်ဘလစ်နိုင်ငံ သံရုံးများမှ ကိုယ်စားလှယ်များ ဧည့်သည်တော်အဖြစ် တက်ရောက်ခဲ့ကြသည်။
လူငယ်တွေသိဖို့
မြန်မာလူမျိုးမှန်လျှင် ဒီအကြောင်းအရာတွေတော့သိထားသင်တယ်
စစ်တပ်က အာဏာမသိမ်းခင် ၁၉၆၀ ခုနှစ် လွန်ခဲ့တဲ့ နှစ်၆၀လောက်က မြန်မာနိုင်ငံရဲ့ စီးပွားရေး
ကြွေးမြီလည်း မရှိသလို ဘာသယံဇာတကိုမှ ပြည်ပကို ရောင်းမစားရသေးဘူး။
သုံးပြီးစွဲပြီး ပိုလျှံနေတဲ့ အရံ ရန်ပုံငွေ အမေရိကန်ဒေါ်လာ ၂၂၈သန်းရှိတယ်။
ဂျပန်က စစ်လျှော်ကြေးပေးရလို့ မျက်ဖြူဆိုက်နေတဲ့အချိန်။ ဂျပန်ကို မြန်မာက ဆန်လှူရတယ်။
တရုတ်ဆိုတာလည်း အဲ့ဒီအချိန်မှာ ထမင်းရည်သောက်နေရတဲ့အဆင့် ။ တရုတ်တွေ မြန်မာပြည်ထဲ လှိမ့်ဝင်လာကြတယ်။
ပညာရေးမှာလည်း အာရှမှာ အဆင့်မြင့်ဆုံးပညာရေးစနစ်ကို ပိုင်ဆိုင်ခဲ့တယ်။ ရန်ကုန်တက္ကသိုလ်ဟာ အာရှရဲ့ အကြီးကျယ်ဆုံး အခမ်းနားဆုံး အအောင်မြင်ဆုံးတက္ကသိုလ်ဖြစ်ခဲ့တယ်။
တရုတ် မလေးရှား ထိုင်း အာရှနိုင်ငံအသီးသီးက မြန်မာနိုင်ငံကိုလာပြီး ပညာသင်ကြရတယ်။ ရန်ကုန်တက္ကသိုလ်က ဘွဲ့တခုခုရရင် ကမ္ဘာမှာ ဘယ်နိုင်ငံသွားပြီးအလုပ်လုပ် လစာကောင်းကောင်းရတယ်။ မြန်မာနိုင်ငံက ဆရာဝန်လက်မှတ်ရရင် တကမ္ဘာလုံးမှာ ကုလို့ရတယ်။
အားကစားမှာလည်း အာရှမှာအကောင်းဆုံး
ဥရောပအသင်းတွေနဲ့လည်း ယှဉ်လို့ရသေးတယ်။
အဲ့ဒီအချိန်က အာရှတိုက်ရဲ့ အကောင်းဆုံးအားစကားကွင်းက အောင်ဆန်းကွင်း။
၁၉၆၀ခုနှစ် စစ်တပ်ကအာဏာမသိမ်းခင်
လွန်ခဲ့တဲ့ နှစ်၆၀က မြန်မာနိုင်ငံဟာ အာရှမှာ နံပါတ်တစ်။
အာရှတိုက်ရဲ့ ကျားတစ်ကောင် ဖြစ်ခဲ့တယ်။
၁၉၆၂ခုနှစ်မှာ ဗိုလ်ချုပ်ကြီးနေဝင်းက အာဏာသိမ်းလိုက်တယ်။(အဲ့ဒီကစပြီး တိုင်းပြည် "'ဖာ""ဖြစ်တော့တာပဲ။)အာဏာသိမ်းပြီး ၂နှစ်အကြာ
၁၉၆၄ခုနှစ်မှာ စီးပွားရေးလုပ်ငန်းမှန်သမျှကို ပြည်သူပိုင်သိမ်းလိုက်တယ်။
၁၉၆၅ မှာ ပထမအကြိမ် ၊ ၁၉၈၇ မှာ ဒုတိယအကြိမ် ဗဟိုဘဏ်ထုတ်တဲ့ ပြည်သူ့လက်ထဲက ငွေတွေကို တရားမဝင်ငွေစက္ကူတွေဆိုပြီး ကျေငြာလိုက်တယ်။ စီးပွားရေးထိုးကျသွားတယ်။ ကမ္ဘာ့အဆင်းရဲဆုံးနိုင်ငံအဖြစ် တရားဝင်ကျေငြာလိုက်ရတယ်။ တိုင်းပြည်ကမောက်ကမဖြစ်သွားတယ်။
၁၉၆၂ခုနှစ် အာဏာသိမ်းပြီး ၂၆နှစ်အကြာမှာ လူထုအုံကြွမှုဖြစ်တယ်။ တစ်လအတွင်း အစိုးရသုံးဆက်ပြောင်းသွားတယ်။
၁၉၈၈ စက်တင်ဘာ ၁၈ရက်နေ့မှာ ဗိုလ်ချုပ်စောမောင်က ထပ်ပြီးအာဏာသိမ်းတယ်။
စစ်တပ်အာဏာမသိမ်းခင်က အာရှတိုက်ရဲ့ကျားအဖြစ်က စစ်တပ်အာဏာသိမ်းပြီးနောက်မှာ ဖွတ်ကျားဖြစ်သွားတယ်။
စစ်တပ်အာဏာမသိမ်းခင်က အာရှမှာ အချမ်းသာဆုံးနိုင်ငံက စစ်တပ်အာဏာသိမ်းပြီးနောက်မှာ
ကမ္ဘာ့အဆင်းရဲဆုံး နိုင်ငံဖြစ်သွားတယ်။
တိုင်းပြည်ကသာ ကမ္ဘာ့အဆင်းရဲဆုံးနိုင်ငံ ဖြစ်သွားပေမယ့် စစ်ဗိုလ်ချုပ်တွေကတော့ စိန်တွေ ရွှေတွေ ဒေါ်လာတွေ ထားစရာမရှိအောင် ချမ်းသာကုန်ကြတယ်။
စစ်တပ်အာဏာမသိမ်းခင်က အာရှတိုက်ရဲ့ အအောင်မြင်ဆုံး ပညာရေးစနစ်ကနေ
အာဏာသိမ်းပြီးနောက်ပိုင်း ယနေ့အချိန်မှာတော့
မြန်မာနိုင်ငံက ဘာဘွဲ့ရရ ဘယ်နိုင်ငံကမှ မထင်မကြီးကြတော့ပါဘူး။ မြန်မာနိုင်ငံက ဘွဲ့ရတွေ ပြည်ပမှာ အိမ်ဖော်လုပ်ရတဲ့အထိ သူများမလုပ်ချင်တဲ့အလုပ်တွေလုပ်ပြီး ကျွန်ခံနေကြရပါတယ်။
စစ်တပ်ဟာ မြန်မာ့ပညာရေးစနစ်ကို ဖျက်ဆီးလိုက်တဲ့ တရားခံစစ်စစ်ပါ။ တိုင်းပြည်ရဲ့ ပညာရေးကိုဖျက်ဆီးပြစ်တဲ့ စစ်တပ်အကြီးအကဲတွေဟာ သူတို့သားသမီးတွေကိုတော့ ပြည်ပမှာပညာသင်စေခဲ့ပါတယ်။
စစ်တပ်အာဏာမသိမ်းခင်က ကျန်းမာရေးစောင့်ရှောက်မှုမှာ ကမ္ဘာကလေးစားခဲ့ရတဲ့ နိုင်ငံဟာ
စစ်တပ်ကအာဏာသိမ်းပြီးနောက်ပိုင်းမှာ ကမ္ဘာ့ကျန်းမာရေးဌာကထောက်ပံ့တဲ့ ဆေးဝါးတွေကို အားကိုးအားထားပြုပြီး ကုသနေရတဲ့အဆင့် ဖြစ်သွားပါတယ်။
ပြည်သူတွေမှာ ဆေးကုသဘို့ ငွေမရှိသလို့ အသက်တွေဆုံးရှုံးနေကြပေမယ့်
စစ်တပ်ရဲအကြီးအကဲတွေကတော့ ပြည်ပထွက်ပြီး ဆေးကုသနေကြပါတယ်။
စစ်တပ်အာဏာမသိမ်းခင်က အာရှတိုက်ရဲ့အကောင်းဆုံးအားကစားသမားတွေကို မွေးထုတ်ပေးတဲ့နိုင်ငံဟာ
စစ်တပ်အာဏာသိမ်းပြီးနောက်ပိုင်းမှာ ဒေသတွင်းနိုင်ငံတွေကို ယှဉ်ပြိုင်နိုင်စွမ်းမရှိတော့ပါဘူး။
တိုင်းပြည်အပေါ် စေတနာထားခဲ့ရင်
တိုင်းပြည်အပေါ် မယုတ်မာခဲ့ရင်
တိုင်းပြည်ဘဏ္ဍာတွေ သယံဇာတတွေကို မခိုးယူခဲ့ရင်
မြန်မာနိုင်ငံ ခုလိုမွဲပြာကျနေစရာ ဘာအကြောင်းမှမရှိဘူး။
mmo 🌐
HtateHtar
Credit.
စာတတ်တဲ့လူငယ်တွေကို အသိတခုပေးချင်တယ်
RFA တို့ VOA တို့လို သတင်းဌာနတွေက ဘာသာပြန်နိုင်ငံခြားသတင်းတွေထက်လေ
ကိုယ်တိုင်စာတတ်ရင် Google ခေါက်ပြီး International သတင်းတွေကို ကိုယ့်ဘာသာကိုယ်ဖတ်စေချင်တယ်
ဘာလို့ဆို ကိုယ်တိုင်အသိထက်
ဘယ်အရာမှမယုံကြည်ရလို့ပါ
အခု Feb 3 ရက်နေ့ တနေ့လုံးမှာ ဖြစ်နေတဲ့ သတင်းတွေပါ
မနက် ၃ နာရီမှာ
UN Council Meeting က ဆက်လုပ်နေတုန်းပဲလို့ သိရတယ်
မနက် ၉:၄၅ မှာ
မြန်မာ စစ်အစိုးရ ဗဟိုဘဏ် အမှုဆောင်ပြောင်းလိုက်တဲ့ သတင်း International က သိသွားတယ်
မနက် ၉:၄၉ မှာ
မြန်မာ ဆေးလုပ်သားနဲ့ ဆရာဝန်တွေ Civil Disobedience လုပ်ရပ်တွေ မြို့နယ် ၃၀ မှာ လုပ်နေတာတွေ international သတင်းတွေက သတိထားမိတယ်
အောင်မြင်တယ်ပြောရမယ်
ဘယ်ကသိလဲဆိုတော့ Facebook social media က လို့ဖော်ပြထားတယ်
နေ့လည် ၁၂:၄၀ မှာ
G-7 နိုင်ငံတွေ အာဏာသိမ်းတာကိုရှုံချပါတယ် ဆိုတဲ့ Joint Statement စလုပ်နေပြီ
(လုပ်တော့ဘာထူးလဲဆိုတော့
လုံခြုံရေးကောင်စီ နိုင်ငံ ၅ နိုင်ငံ အပြင်
တခြားနိုင်ငံတွေက မြန်မာ့ အရေးဟာ ကမ္ဘာ့ အရေးပါလို့ တသံထဲထွက်လာရင်
ဘယ်လောက် တရုတ်နဲ့ ရုရှားတင်းခံခံ ဝင်ရောက်စွတ်ဖက်လို့ရသွားပြီ...
အကြောင်းက
နိုင်ငံတကာရဲ့တောင်းဆိုမှုအရဆိုတဲ့ အကြောင်းပြချက်နဲ့)
နေ့လည် ၁:၃၀ မှာ
NLD ငြိမ်းချမ်းရေးဖော်ဆောင်သူတွေကို နေပြည်တော် ရုံးချုပ်ကနေ ၂၄ နာရီ အတွင်းထွက်သွားပေးဖို့
(ကျန်တဲ့သူတွေလဲကျန်သေးတယ်ပြောတယ်)
စတဲ့ သတင်းတွေ international က သတိထားမိထားတယ်
ပြောချင်တာက ကမ္ဘာက action ယူတာကတော့ ကြာတယ်
ဒါပေမယ့် မလုပ်နေကြတာမဟုတ်တဲ့အတွက်
ပြည်သူတွေ နေအိမ်ကနေပဲငြိမ်းချမ်းစွာ ဆန္ဒပြပါ
ငြိမ်တော့ခံမနေပါနဲ့ စစ်အစိုးရကို
တောက်လျှောက်ဆန့်ကျင်နေပါ
(keyboard fighter ပဲပြောပြော အခုဆို ကိုယ်တွေရေးတာတွေက ထိရောက်တယ်ဆိုတဲ့သဘောမှာ မြင်ရတယ်တွေ့လား)
ကိုယ်တွေထက်တတ်ကျွမ်းနားလည်သူတွေက
ဒီထက်မက ပိုလှုပ်ရှားပေးနေတာဖြစ်လို့
ပြည်သူတွေ keyboard fighter လုပ်နေရတာနဲ့တင်တာဝန်ကျေနေပါပြီဆိုတာ ပြောပြချင်တာပါ
မြန်မာနိုင်ငံ၏ ကွန်ပျူတာနှင့်ပတ်သက်သော တရားဝင်အသင်းများဖြစ်သည်ဟု အမည်ခံထားသော Myanmar Computer Federation (MCF) နှင့် Myanmar Computer Professionals Association (MCPA) အစရှိသောအသင်းများမှ ယခုလက်ရှိဖြစ်ပေါ်နေသော စစ်တပ်မှ ပြည်သူလူထုနှင့် နိုင်ငံတော်အား ပုန်ကန်ဆန့်ကျင်သစ္စာဖောက်ကာ အာဏာသိမ်းသော လုပ်ရပ်အပေါ်တွင် ရေငုံနှုတ်ပိတ်နေခြင်းအား ရှက်ရွံဖွယ်ကန့်ကွက်ပါသည်။
Shame on you MCF , MCPA !
🛑 ATTENTION PLS 🛑
၃ရက်နေ့ည ၈ နာရီ နိုင်ငံတော်သီချင်း ဆိုလို့ လုံးဝ မဖြစ်ပါဘူးနော်။
နိုင်ငံတော်သီချင်းဆိုလိုက်ရင် စစ်တပ်က အာဏာသိမ်းတာကို လက်ခံလိုက်တယ်လို့ ယူဆသလိုဖြစ်သွားမှာပါ။
LED နဲ့ ဆိုပြီး
ကမ္ဘာမကြေဘူး သီချင်းကိုပဲ ဆိုကြပါ။
ဒီသီချင်းက အမျိုးသားနှိုးဆော်ရေးသီချင်းမို့
အဆင်ပြေပါတယ်။
အားလုံး copy ယူပြီးတင်ပေးကြပါနော်။
အခုချိန် နည်းနည်းလေးတောင် လွဲလို့မဖြစ်ပါဘူး။
See Less
အမေစုက ငြိမ်းချမ်းစွာ ဆန့်ကျင်ခိုင်းထားပါတယ်။
ဦးဝင်းထိန် Video ထဲမှာ ပြောထားတဲ့ "Civil Disobedience" ကို လုပ်ခိုင်းတာပါ။ ဥပမာ စစ်အစိုးရခိုင်းထားတဲ့ အလုပ်တွေကို မလုပ်ရအောင် အလုပ်မသွားပဲ နေတာမျိုးပေါ့။
- စည်ပင် အလုပ်မသွားပါနဲ့။ ဗိုလ်ချုပ်တွေအမှိုက်မကောက်နိုင်ပါဘူး။
- M*FA အလုပ်မသွားပါနဲ့။ ဗိုလ်ချုပ်တွေ သံတမန်တွေနဲ့ မဆက်သွယ်တက်ပါဘူး။
- M*F အလုပ်မသွားပါနဲ့။ ဗိုလ်ချုပ်တွေ စာရင်းမလုပ်နိုင်ပါဘူး။
- MOE အလုပ်မသွားပါနဲ့။ ဗိုလ်ချုပ်တွေ စာမသင်နိုင်ပါဘူး။
ပြည်သူတွေသုံးနေတဲ့ essential services တွေတော့အလုပ်လုပ်ဖို့လိုပါမယ်။ ဥပမာ ဆရာ၀န်၊ YBS၊ မီးရထား ပေါ့။
စစ်အစိုးရ ယန္တရားကြီး ရပ်သွားအောင် တစ်နိုင်ငံလုံးမှာရှိတဲ့ အစိုးရ ဝန်ထမ်းတွေ တပြိုင်တည်း ရုံးသွားမတက်တော့ပဲ သပိတ်မှောက်လိုက်။
ဗိုလ်ချုပ်တွေကို ထောက်ခံရင်တော့ အလုပ်သွားကြပေါ့။
Sanctions ပြန်ထိရင် နိုင်ငံခြား company တွေပြန်ထွက်မှာပါ။ အလုပ်တွေပြုတ်မှာပါ။ သင့်သားသမီးတွေ လမ်းဘေးရောက်မှာပါ။
ပုံမှာပါတဲ့အတိုင်း အမေပြုံးရယ်နေတာမြင်ချင်သေးတယ်။ ဘာမှမလုပ်ရင် အမေပြုံးရယ်နေတာကိုမြင်ရတာ ဒါနောက်ဆုံးပါဘဲ။
UK မှာလုပ်ခဲ့ဖူးပါတယ်။ အောင်မြင်ခဲ့ပါတယ်။ အိမ်မှာဘဲနေလိုက်တော့ အသက်အန္တရာယ်လဲမရှိတော့ပါဘူး။ ၁ လလောက်ကြာမှာပါ။
credit: Myanmar Times & May Myat Noe
မshare ပါနဲ့
Copy paste ပီးပြန်တင်ပေးပါ ...
72 hour စောင့်လည်းဘာထူးမှာမို့လို့လဲ ? ပြည်သူကငြိမ်နေရင် လက်ခံလို့ပေါ့ ဆိုတာတွေတွေ့လာရလို့ လူကြီးတွေဆီကနေ ကိုယ်မေးထားသလောက်ပြန်ပြောပါမယ်။
အခု ဥပဒေအရ တရားဝင်အာဏာသိမ်းခွင့်က 72 hour ရှိပါတယ်။ အဲ့အချိန်အတွင်းမှာ ဘာကြောင့်အာဏာသိမ်းရတယ် ဆိုတာကိုအထောက်အထားခိုင်ခိုင်လုံလုံပြနိုင်မယ့်အချက်တွေရယ် လက်ရှိသမ္မတဦးဝင်းမြင့်ကိုယ်တိုင် ကာလုံခေါ်ပီးအာဏာလွှဲပြောင်းခွင့်ပေးတာကို သဘောတူတဲ့ လက်မှတ်ရယ် စတာတွေကို UN အပါအဝင် နိုင်ငံတကာကစောင့်ကြည့်အဖွဲ့အစည်းတွေသိအောင်ပြရပါတယ်။ မပြနိုင်ရင် နိုင်ငံတော်ပုန်ကန်မှုပါ။ သေဒဏ်ထိပေးနိုင်ပါတယ်။ 72 နာရီအတွင်းပြည်သူဖက်ကငြိမ်နေတာဟာ အာဏာသိမ်းတာကိုထောက်ခံတာလုံးဝမဟုတ်ပါဘူး။
မင်းအောင်လှိုင်တို့ဖက်ကလိုချင်တာ အာဏာသိမ်းပီးနောက်ပိုင်းပြည်သူတွေရဲ့ ဆူပူအုံကြွမှုပါ။ ပြည်သူတွေမခံမရပ်နိုင်ဖြစ်အောင်နည်းမျိုးစုံနဲ့ဆွပီး လမ်းပေါ်ကိုခေါ်တာပါ။ သူတို့ထောင်ချောက်ထဲဝင်သွားပီး သွေးဆူနေတဲ့ပြည်သူက လမ်းပေါ်ထွက်ရင် သူတို့အမှားကကိုယ့်အမှားဖြစ်ပီး ဒီလိုတွေဆူလို့ အာဏာသိမ်းရတာပါဆိုပီးဖြစ်မှာပါ။ ( ဒါလူတိုင်းနားလည်တဲ့ကိစ္စပါ) ။
အဲ့တာကြောင့်မို့ ငြိမ်းချမ်းစွာတော်လှန်ကြပါလို့ လူတိုင်းကမှာတာပါ။ internet ကသူတို့ဖွင့်ပေးထားလို့ သုံးရတယ်ဆိုပေမယ့် သုံးနေရတဲ့အချိန်အတွင်းမှာ ဒီအာဏာရှင်စနစ်ကို မြန်မာပြည်သူတွေကတညီတညွတ်တည်းလက်မခံကြောင်း နိုင်ငံတကာကသိအောင်လုပ်နိုင်ပါတယ်။ လုပ်လည်းလုပ်နေကြပါတယ်။ ဆက်လက်ပီးလည်း ငြိမ်းချမ်းစွာတော်လှန်ကြဖို့ မေတ္တာရပ်ခံပါတယ်။ media တွေရဲ့ soft powerကိုအထင်မသေးပါနဲ့လို့လည်းပြောချင်ပါတယ်။
အပေါ်ကပြောတဲ့အချက်တွေကလိုအပ်တာတွေပါကောင်းပါနိုင်ပေမယ့် စိတ်အရမ်းပူနေကြတဲ့သူတွေအတွက်အထောက်အကူဖြစ်မယ်ထင်ပါတယ်။
အားလုံးဘေးရန်ကင်းပါစေ
***
ဘဝလမ်းတွေက ကြမ်းလိုက်တာ အမေရယ်
ကျန်းကျန်းမာမာနဲ့ကျော်ဖြတ်နိုင်ပါစေ
***WHITE STAR Education Center***
မင်္ဂလာပါ
*****
01 Notepad program
*****
Windows notepad application နဲ့ ပုံစံတူ program ဖန်တီးရင်း python programming language ကို လေ့လာဆွေးနွေးကြည့်ရအောင်ပါ။ လေ့လာရလွယ်ကူအောင် အပိုင်းလေးတွေခွဲပြီး လေ့လာဆွေးနွေးသွားပါမယ်။ notepad.py file ထဲမှာ notepad application ပုံစံရအောင်ဖန်တီးရေးသားထားတဲ့ code တွေကို လေ့လာကြည့်ရအောင်ပါ။ ပြီးခဲ့တဲ့ discussion တွေမှာလိုမဟုတ်ဘဲ class နဲ့ရေးသားဆွေးနွေးထားပါတယ်။
from tkinter import *
tkinter module ကို အသုံးပြုနိုင်ဖို့အတွက် import လုပ်ထားတာဖြစ်ပါတယ်။ class Notepad: ထဲမှာ ရေးထားတဲ့ code တွေကိုဆက်လေ့လာကြည့်ရအောင်ပါ။
class Notepad:
__root = Tk()
__width = 800
__height = 500
__text_area = Text(__root)
__menu_bar = Menu(__root)
__file_menu = Menu(__menu_bar, tearoff=0)
__file = None
Notepad class ထဲမှာ __root, __width, .... စတဲ့ variable တွေကို declare လုပ်ထားတာဖြစ်ပါတယ်။ variable တွေရှေ့က "double underscore" "__" တွေကတော့ access identifier တွေကို သတ်မှတ်ထားတာဖြစ်ပါတယ်။ (စတင်လေ့လာသူတွေရှုပ်ထွေးသွားမှာစိုးတဲ့အတွက် access identifier တွေအကြောင်းကို ခဏထားပြီး program run လို့ရအောင်ဘဲ အဓိကထား လေ့လာဆွေးနွေးသွားပါမယ်။) menu bar ဖန်တီးဖို့အတွက် __menu_bar = Menu(__root) ဖန်တီးထားပါတယ်။ menu bar ထဲမှာ File menu ဖန်တီးဖို့အတွက် __file_menu = Menu(__menu_bar, tearoff=0) ဆိုပြီး ဖန်တီးထားပါတယ်။ tearoff=0 ဆိုတာကတော့ tearoff function ကို မသုံးဘူးလို ဆိုလိုခြင်း ဖြစ်ပါတယ်။ (tearoff=0 မပေးထားရင် dotted line လေးကို မြင်နေရမှာဖြစ်ပါတယ်။ လက်တွေ့စမ်းသပ်ကြည့်ပါ။) __file = None variable လည်း ဖန်တီးထားပါတယ်။
def __init__(self):
self.__root.title("Untitled-Notepad")
self.__root.geometry('%dx%d' % (self.__width, self.__height))
self.__root.grid_rowconfigure(0, weight=1)
self.__root.grid_columnconfigure(0, weight=1)
self.__text_area.grid(sticky=N + E + S + W)
# Add File menu
self.__file_menu.add_command(label="New", command=self.__new_file)
self.__menu_bar.add_cascade(label="File", menu=self.__file_menu)
# Add Menu bar
self.__root.config(menu=self.__menu_bar)
Notepad class ထဲမှာ def __init__(self): function ကို ဖန်တီးထားပါတယ်။ (__init__ function ကတော့ Java, C # စတဲ့ programming language တွေက constructor နဲ့ သဘောတရားဆင်တူပါတယ်။ ဖန်တီးထားတဲ့ class ကို အလုပ်လုပ်စေတဲ့အချိန်မှာ __init__ function ကအရင်ဆုံး အလုပ်လုပ်မှာဖြစ်ပါတယ်။ စတင်လေ့လာသူတွေအနေနဲ့ ကတော့ program တွေရေးပါများရင် နားလည်လာပါလိမ့်မယ်လို့ဘဲ ပြောပါရစေ။) self.__root, self.__text_area စသဖြင့် self နဲ့ရေးထားတာကတော့ Notepad class ထဲက variable ဖြစ်တယ်လို့ သတ်မှတ်တဲ့ သဘောမျိုးဖြစ်ပါတယ်။ title, geometry(size), rowconfigure, columnconfigure တွေကို သတ်မှတ်ထားပါတယ်။ __text_area ကိုလည်း grid() နဲ့နေရာချထားပါတယ်။ "File" menu ထဲမှာ "New" စာသားနဲ့ menu တစ်ခုကို self.__file_menu.add_command(label="New", command=self.__new_file) ရေးပြီးဖန်တီးထားပါတယ်။ "New" စာသားကို နှိပ်တဲ့အချိန်မှာ __new_file function ကို အလုပ်လုပ်စေမှာဖြစ်ပါတယ်။
"File" menu ကို menu bar ထဲမှာဖန်တီးဖို့အတွက် self.__menu_bar.add_cascade(label="File", menu=self._file_menu) ရေးထားတာကို သတိပြုစေချင်ပါတယ်။ ပြီးရင်တော့ menu bar ကို windows form ပေါ်မှာ နေရာချဖို့အတွက် self.__root.config(menu=self.__menu_bar) ရေးလိုက်မယ်ဆိုရင် "File" > "New" menu ကို notepad application မှာ မြင်နေရပြီဖြစ်ပါတယ်။
def __new_file(self):
self.__root.title("Untitled Notepad")
self.__file = None
self.__text_area.delete(1.0, END)
ဒါကတော့ "New" menu ကိုနှိပ်တဲ့အချိန်မှာ အလုပ်လုပ်စေမယ့် __new_file function ကို ဖန်တီးထားတာဖြစ်ပါတယ်။ title ကို "Untitled Notepad" သတ်မှတ်ထားသလို၊ __file = None ပေးပြီး __text_area ထဲမှာ စာသားတွေရှိရင် delete လုပ်လိုက်တာဖြစ်ပါတယ်။
def run(self):
self.__root.mainloop()
ဒါကတော့ Notepad class ထဲမှာ run(self) function လေးဖန်တီးထားတာဖြစ်ပါတယ်။ self.__root.mainloop() ရေးထားတဲ့အတွက် program ကို run တဲ့အလုပ်ကို လုပ်စေဖို့ပါ။
if __name__ == "__main__":
window = Notepad()
window.run()
ပြီးရင်တော့ class ရဲ့ အပြင်ဘက်ကနေ window = Notepad() ဆိုပြီး window object varible ဖန်တီးကာ window.run() နဲ့ run function ကို အလုပ်လုပ်စေလိုက်တာဖြစ်ပါတယ်။ text area ထဲမှာ စာသားတွေရေးပြီး File > New menu နှိပ်လိုက်မယ်ဆိုရင်တော့ စာသားတွေအားလုံးပျက်သွားတဲ့အလုပ်ဘဲ ရှိပါသေးတယ်။ ကျန်တဲ့ လုပ်ဆောင်မှုတွေကိုတော့ Next discussion တွေမှာ ဆက်လက်လေ့လာဆွေးနွေးသွားပါမယ်။ လေ့လာရတာ အဆင်ပြေကြပါစေ။
***WHITE STAR Education Center***
မင်္ဂလာပါ
*****
Song book program
*****
Song book program ဖန်တီးရင်းနဲ့ python programming language ကို လေ့လာကြည့်ကြရအောင်ပါ။ Program ရဲ့ ရည်ရွယ်ချက်ကတော့ song button ကိုနှိပ်လိုက်ရင် သီချင်းစာသားတွေကို text box ထဲမှာ ဖော်ပြဖို့အတွက် ဖြစ်ပါတယ်။ File I/O နဲ့ပက်သက်တာကို လေ့လာဆွေးနွေးဖို့အတွက်ရည်ရွယ်ဖန်တီးထားမှာဖြစ်ပါတယ်။ ရေးထားတဲ့ code တွေကိုလေ့လာကြည့်ကြရအောင်ပါ။
from tkinter import *
အရင်ဆုံး tkinter module ကို import လုပ်ထားပါတယ်။
window = Tk()
window.title("WHITE STAR Education Center")
window.geometry("800x500")
window.rowconfigure(0, weight=1)
window.columnconfigure(1, weight=1)
ပြီးရင်တော့ window object ကို title, size တွေသတ်မှတ်ပြီး ဖန်တီးထားတာ ဖြစ်ပါတယ်။ window form ကို rowconfigure, columnconfigure တွေသတ်မှတ်ထားတာကိုလည်း သတိပြုစေချင်ပါတယ်။
frm_song = Frame(master=window, width=100, bg="brown")
song1_path = "./song_folder/song1.txt"
Button(master=frm_song, text="လရိပ်", bg="brown", command=lambda: open_file(song1_path)).grid(padx=5, pady=5)
song2_path = "./song_folder/song2.txt"
Button(master=frm_song, text="ရှိနေမှာပါ", bg="brown", command=lambda: open_file(song2_path)).grid(padx=5, pady=5)
song3_path = "./song_folder/song3.txt"
Button(master=frm_song, text="မျှော်နိုင်သမျှ", bg="brown", command=lambda: open_file(song3_path)).grid(padx=5, pady=5)
frm_song.grid(row=0, column=0, sticky="ns")
ဒါကတော့ application ရဲ့ ဘယ်ဘက်အခြမ်းမှာမြင်နေရတဲ့ song button တွေကို ဖန်တီးထားတာဖြစ်ပါတယ်။ song button တွေကို frm_song Frame ထဲမှာ grid() နဲ့ နေရာချထားတာကိုလည်း သတိပြုစေချင်ပါတယ်။ frm_song Frame ကို အောက်ဆုံးမှာ grid(row=0, column=0, sticky="ns") နဲ့ နေရာချထားတာကိုလည်း သတိပြုစေချင်ပါတယ်။ sticky="ns" ဆိုတာကတော့ application view ကို အကျယ်ချဲ့လိုက်မယ်ဆိုရင် frm_song Frame ကို north, sourth ဘက်ကို အလိုအလျောက်ချဲ့သွားအောင် ဖန်တီးထားတာဖြစ်ပါတယ်။
သီချင်းစားသားတွေကို song_folder အမည်နဲ့ folder တစ်ခုဆောက်ပြီး song1.txt, song2.txt, song3.txt စသည်ဖြင့် ဖန်တီးထားပါတယ်။ lambda: open_file(song1_path) ဆိုပြီး button နှိပ်တဲ့အချိန် open_file function ကို ခေါ်ယူအလုပ်လုပ်စေတဲ့အချိန်မှာ song1_path ကို parameter အနေနဲ့ ပေးလိုက်တဲ့သဘောဖြစ်ပါတယ်။ song1_path = "./song_folder/song1.txt" စသည်ဖြင့် path လမ်းကြောင်းအတွက် variable ဖန်တီးထားတာကိုလည်း သတိပြုစေချင်ပါတယ်။
txt_song = Text(master=window, bg="gray", fg="white")
scrollbar = Scrollbar(txt_song)
scrollbar.pack(side=RIGHT, fill=Y)
scrollbar.config(command=txt_song.yview)
txt_song.config(yscrollcommand=scrollbar.set, wrap=WORD)
txt_song.grid(row=0, column=1, sticky="nsew")
ဒါကတော့ သီချင်းစာသားတွေကို ဖော်ပြဖို့အတွက် txt_song Text widget ကို ဖန်တီးထားတာဖြစ်ပါတယ်။ သီချင်းစာသားတွေက view ထက်ပိုနေမယ်ဆိုရင်တော့ scroll bar နဲ့ ဆွဲယူကြည့်နိုင်ဖို့အတွက် scrollbar ကိုလည်း ဖန်တီးထားပါတယ်။ button နှိပ်တဲ့အချိန်မှာ အလုပ်လုပ်မယ့် open_file function ထဲမှာ ရေးထားတဲ့ code တွေကိုလေ့လာကြည့်ရအောင်ပါ။
def open_file(path):
txt_song.delete("1.0", "end")
f = open(path, "r", encoding="utf8")
txt_song.insert(END, f.read())
f.close()
button နှိပ်တဲ့အချိန်မှာ song1_path, song2_path, song3_path တွေကို parameter အနေနဲ့ ပေးလိုက်တာဖြစ်တဲ့အတွက် open_file(path) လို့ရေးပြီး path variable နဲ့ ရယူလိုက်တဲ့သဘောဖြစ်ပါတယ်။ txt_song Text widget ထဲမှာ စာသားအဟောင်းတွေရှိနေခဲ့ရင် ဖျက်ပစ်ဖို့အတွက် txt_song.delete("1.0", "end") ရေးထားတာဖြစ်ပါတယ်။ ပေးထားတဲ့ path လမ်းကြောင်းမှာရှိတဲ့ text file ကို ဖွင့်ဖို့အတွက် open(path, "r", encoding="utf8") လို့ရေးထားတာဖြစ်ပါတယ်။ (မြန်မာစာသားတွေကို ဖော်ပြနိုင်ဖို့အတွက် encoding="utf8" ကိုရေးပေးရပါမယ်။) ပြီးရင်တော့ txt_song Text widget ထဲကို text file ထဲက စာသားတွေထည့်ဖို့အတွက် txt_song.insert(END, f.read()) ဆိုပြီး ရေးထားတာဖြစ်ပါတယ်။ file တွေကို read/write စတာတွေလုပ်ပြီးရင်တော့ file ကို ပြန်ပိတ်ဖို့အတွက် f.close() ကိုရေးပေးရမှာဖြစ်ပါတယ်။
if __name__ == "__main__":
window.mainloop()
အားလုံးရေးပြီးရင်တော့ program ကို run ဖို့အတွက် window.mainloop() ရေးပြီး run ကြည့်ပါ။ သီချင်းစာသား text file တွေဖန်တီးပြီး song button လေးတွေ ထပ်ပြီး ဖန်တီးကြည့်လိုက်ရင် နားလည်သွားပါလိမ့်မယ်။ လေ့လာရတာ အဆင်ပြေကြပါစေ။
***WHITE STAR Education Center***
မင်္ဂလာပါ
*****
Standard calculator program
*****
Standard calculator program ဖန်တီးရင်း python programming language ကို လေ့လာဆွေးနွေးကြည့်ရအောင်ပါ။ Appication ရဲ့ ပုံံစံကို keyboard ရဲ့ number key ပုံစုံအတိုင်း ဖန်တီးပေးထားပါတယ်။ program ရဲ့ ရည်ရွယ်ချက်ကတော့ ကိန်းဂဏန်းတွေကို ပေါင်း၊ နှုတ်၊ မြှောက်၊ စား ပြုလုပ်နိုင်ဖို့ဖြစ်ပါတယ်။ program အတွက်ရေးထားတဲ့ code တွေကို လေ့လာကြည့်ကြရအောင်ပါ။
from tkinter import *
အရင်ဆုံး GUI application ဖန်တီးဖို့အတွက်လိုအပ်တဲ့ tkinter module ကို import လုပ်ထားတာဖြစ်ပါတယ်။
window = Tk()
window.title("WHITE STAR")
window.geometry("300x315")
window.option_add("*Font", "Arial 20")
ဒါကတော့ window object ကို title, size တွေသတ်မှတ်ပြီး ဖန်တီးထားတာဖြစ်ပါတယ်။ window.option_add("*Font", "Arial 20") ဆိုတာကတော့ application program ရဲ့ font တွေအားလုံးကို Arial, size က 20 သတ်မှတ်လိုက်တာဖြစ်ပါတယ်။
display = StringVar()
Entry(master=window, textvariable=display, justify="right", relief="sunken").grid(row=0, column=0, columnspan=4)
ဒါကတော့ ဖြည့်သွင်းလိုက်တဲ့ ကိန်းဂဏန်းတွေ၊ result တွေကို ပြသဖို့အတွက် Entry text box ဖန်တီးထားတာဖြစ်ပါတယ်။ display variable ကို StringVar() type နဲ့ ဖန်တီးထားပြီး textvariable ထဲကို ထည့်ထားတာကိုလည်း သတိပြုစေချင်ပါတယ်။ Entry() ကို window form ပေါ်မှာ နေရာချတဲ့အချိန်မှာ grid() ကို သုံးထားပြီး row, column တွေအပြင် columnspan=4 သတ်မှတ်ထားတာကိုလည်း သတိပြုစေချင်ပါတယ်။ colulmnspan ဆိုတာကတော့ column တွေကို ပေါင်းစပ်လိုက်တဲ့ သဘောဖြစ်ပါတယ်။ columnspan=4 ရေးထားတဲ့အတွက် column ၄ ခု ပေါင်းစပ်ပြီး Entry text box ကို ဖော်ပြမယ်လို့ သတ်မှတ်လိုက်တာဖြစ်ပါတယ်။ (microsoft word, excel တွေမှာ cell တွေကို merge လုပ်တာနဲ့ ဆင်တူပါတယ်။)
Button(master=window, text="C", bg="red", command=lambda: display.set('')).grid(row=1, column=0, sticky="nsew")
Button(master=window, text="/", bg="brown", command=lambda: display.set(display.get() + "/")).grid(row=1, column=1, sticky="nsew")
Button(master=window, text="*", bg="brown", command=lambda: display.set(display.get() + "*")).grid(row=1, column=2, sticky="nsew")
Button(master=window, text="-", bg="brown", command=lambda: display.set(display.get() + "-")).grid(row=1, column=3, sticky="nsew")
Button(master=window, text="7", bg="gray", command=lambda: display.set(display.get() + "7")).grid(row=2, column=0, sticky="nsew")
Button(master=window, text="8", bg="gray", command=lambda: display.set(display.get() + "8")).grid(row=2, column=1, sticky="nsew")
Button(master=window, text="9", bg="gray", command=lambda: display.set(display.get() + "9")).grid(row=2, column=2, sticky="nsew")
Button(master=window, text="+", bg="brown", command=lambda: display.set(display.get() + "+")).grid(row=2, rowspan=2, column=3, sticky="nsew")
Button(master=window, text="4", bg="gray", command=lambda: display.set(display.get() + "4")).grid(row=3, column=0, sticky="nsew")
Button(master=window, text="5", bg="gray", command=lambda: display.set(display.get() + "5")).grid(row=3, column=1, sticky="nsew")
Button(master=window, text="6", bg="gray", command=lambda: display.set(display.get() + "6")).grid(row=3, column=2, sticky="nsew")
Button(master=window, text="1", bg="gray", command=lambda: display.set(display.get() + "1")).grid(row=4, column=0, sticky="nsew")
Button(master=window, text="2", bg="gray", command=lambda: display.set(display.get() + "2")).grid(row=4, column=1, sticky="nsew")
Button(master=window, text="3", bg="gray", command=lambda: display.set(display.get() + "3")).grid(row=4, column=2, sticky="nsew")
Button(master=window, text="=", bg="green", command=calculate).grid(row=4, rowspan=2, column=3, sticky="nsew")
Button(master=window, text="0", bg="gray", command=lambda: display.set(display.get() + "0")).grid(row=5, column=0, columnspan=2, sticky="nsew")
Button(master=window, text=".", bg="gray", command=lambda: display.set(display.get() + ".")).grid(row=5, column=2, sticky="nsew")
ဒါတွေကတော့ ပုံမှာပြထားတဲ့ calculator application ပုံစံလေးဖြစ်ပေါ်လာအောင် button တွေကို ဖန်တီးပြီး grid() နဲ့ row, column အလိုက် နေရာချထားတာဖြစ်ပါတယ်။ grid() ထဲမှာရေးထားတဲ့ sticky="nsew" ဆိုတာကတော့ သတ်မှတ်ထားတဲ့ နေရာကို north, south, east, west အပြည့်နေရာယူမယ်လို့ သတ်မှတ်တာမျိုး ဖြစ်ပါတယ်။ (အလုပ်လုပ်ပုံကို သေသေချာချာသိမြင်ဖို့အတွက် sticky="nsew" ပါတာနဲ့၊ မပါတာကို နှိုင်းယှဉ်ကြည့်စေချင်ပါတယ်။) columnspan, rowspan တွေသတ်မှတ်ထားတာကို လည်း သတိပြုစေချင်ပါတယ်။
'C' button မှာ ရေးထားတဲ့ command=lambda: display.set('') ဆိုတာကတော့ button ကိုနှိပ်လိုက်ရင် display variable ကို null (ဘာမှမရှိ) အောင်ပြုလုပ်မယ်လို့ သတ်မှတ်လိုက်တာဖြစ်ပါတယ်။ 'C' button လိုဘဲ အခြားသက်ဆိုင်တဲ့ button တွေကိုလည်းဘဲ button နှိပ်တာနဲ့ သက်ဆိုင်တဲ့ ကိန်းဂဏန်း၊ သင်္ကေတ တွေကို display variable ထဲကို ထည့်ပေးလိုက်တဲ့အတွက် entry text box ထဲမှာ မြင်နေရမှာဖြစ်ပါတယ်။
Button(master=window, text="=", bg="green", command=calculate).grid(row=4, rowspan=2, column=3, sticky="nsew")
ထူးခြားတာကတော့ "=" button ကို နှိပ်တဲ့အချိန်မှာ command=calculate လို့ရေးထားတဲ့အတွက် calculate function ကို အလုပ်လုပ်စေမှာဖြစ်ပါတယ်။ calculate function ထဲမှာ ရေးထားတဲ့ code တွေကို ဆက်လက်လေ့လာကြည့်ရအောင်ပါ။
def calculate():
try:
display.set(eval(display.get()))
except:
display.set("ERROR")
ကိန်းဂဏန်း မဟုတ်ဘဲ အက္ခရာတွေ ဖြည့်သွင်းမိတာ.... အစရှိတဲ့ error တွေကို ဖြေရှင်းဖို့အတွက် try... except... ကို အသုံးပြုထားတာဖြစ်ပါတယ်။ user ကမှားယွင်းဖြည့်သွင်းမိမယ်ဆိုရင်တော့ "ERROR" စာသားကို entry text box ထဲမှာ ပြသပေးနေမှာဖြစ်ပါတယ်။ ထူးခြားတာကတော့ display.set(eval(display.get())) ထဲမှာရေးထားတဲ့ eval() function ဘဲဖြစ်ပါတယ်။ eval() function ကို အသုံးပြုထားတဲ့အတွက် ကိန်းဂဏန်းတွေ ပေါင်း၊ နှုတ်, မြှောက်၊ စား ပြုလုပ်တာတွေအတွက် ထွေထွေးထူးထူးစဉ်းစားစရာမလိုလောက်အောင် ပြုလုပ်ပေးပါတယ်။ simple calculator program ဖန်တီးခဲ့တုန်းက ကိန်းဂဏန်းနှစ်ခုကို ပေါင်းရမှာလား? နှုတ်ရမှာလား? .... စသဖြင့် condition စစ်ပေးခဲ့ရပါတယ်။ အခုကတော့ eval() function သုံးလိုက်တဲ့အတွက် easy to going ပါဘဲ။ အခုလို အသုံးဝင်တဲ့ python library function တွေအများကြီးရှိပါတယ်။ eval() function နဲ့ ပက်သက်ပြီး အသေးစိတ်လေ့လာချင်တယ်ဆိုရင်တော့ အောက်ပါ link ကနေ ဝင်ရောက်လေ့လာနိုင်ပါတယ်။
https://realpython.com/python-eval-function/
စတင်လေ့လာသူတွေအနေနဲ့ကတော့ code တွေကို ကြိုးစားရေးပြီး program လေး run လို့ရရင်ဘဲ အဆင်ပြေပါပြီ။ ကျွန်တော်တို့ စလေ့လာခါစတုန်းကလည်း အခုလို program လေးတွေရေးလို့ရရင် ပျော်နေတတ်ခဲ့ပါတယ်။ အခုကတော့ program လေးတွေ ဖန်တီးတာကို လေ့လာဆွေးနွေးနေတာဖြစ်ပြီး နောက်ပိုင်းမှာ python programming နဲ့သက်ဆိုင်တဲ့သဘောတရားတွေကို အခြေခံကနေစပြီး ဆက်လက်လေ့လာဆွေးနွေးသွားမှာပါ။ လေ့လာရတာ အဆင်ပြေကြပါစေ။
***WHITE STAR Education Center***