Прављење календара је одличан начин да научите о креирању ГУИ апликација помоћу Питхон Ткинтер модула. Ову апликацију можете користити за управљање и планирање догађаја унапред.
Даље, можете проширити апликацију за праћење предстојећих састанака и постављање подсетника. Можете чак да уведете сарадњу са календарима других корисника да бисте избегли сукобе у распореду.
Све почиње са основним скелетом апликације ГУИ Цалендар.
Модули Календар, Ткинтер и ДатеТиме
Да бисте направили ГУИ календар, користићете календар, Ткинтер и модул ДатеТиме. Тхе Календарски модул долази са Питхон-ом и омогућава вам да извршите радње везане за датум, месец и календар.
Ткинтер вам омогућава да креирате десктоп апликације. Нуди разне виџете, корисне библиотеке, платнене објекте и ХТМЛ/КСМЛ/ПДФ парсере. Да бисте направили ГУИ апликацију, све што треба да урадите је:
- Увезите библиотеку.
- Направите прозор.
- Додајте виџете у тај прозор.
- Позовите главну петљу догађаја да бисте извршили радње на основу интеракције корисника.
Да бисте инсталирали Ткинтер у свој систем, отворите терминал и покрените:
пип инсталл ткинтер
Модул ДатеТиме је још један који је уграђен. Нуди неколико класа које се могу бавити датумима, временима и временским интервалима. Помоћу овог модула можете направити планер догађаја, аларм, калкулатор датума и апликација за временску зону.
Како направити ГУИ календар користећи Питхон
Можете пронаћи изворни код ГУИ календара користећи Питхон у овоме ГитХуб спремиште.
Започните увозом модула Ткинтер, Цалендар и ДатеТиме. Дефинишите функцију, принтЦалендар. Користити добити() метод на Спинбок-у (дефинисан касније у коду) за издвајање месеца и године које је корисник изабрао. Проследите ове вредности модулу календара да бисте добили форматирани текстуални календар који представља наведену годину и месец. Овај текст представља једноставну монопросторну мрежу, са данима распоређеним у недељама почевши од понедељка.
Обришите све постојеће податке са екрана. 1.0 означава почетак поља, и крај означава крај поља. На крају, убаците раније генерисани календар и прикажите га на екрану.
из ткинтер увоз *
увоз календар
из Датум време увоз датум
дефпринтЦалендар():
месец = инт (монтх_бок.гет())
година = инт (иеар_бок.гет())
оутпут_цалендар = цалендар.монтх (година, месец)
цалендар_фиелд.делете(1.0, 'крај')
цалендар_фиелд.инсерт('крај', оутпут_цалендар)
Дефинишите функцију, ресетовати. Обришите садржај на екрану и подесите месец и годину на садашњост и користите цонфиг() начин да га прикажете на екрану.
дефресетовати():
цалендар_фиелд.делете(1.0, 'крај')
монтх_вар.сет (тренутни_месец)
иеар_вар.сет (тренутна_година)
монтх_бок.цонфиг (тектвариабле=монтх_вар)
иеар_бок.цонфиг (тектвариабле=иеар_вар)
Дефинишите функцију, затворите да бисте уништили приказ прозора и изађите из програма.
дефБлизу():
гуиВиндов.дестрои()
Иницијализујте Ткинтер инстанцу и прикажите основни прозор. Подесите наслов, димензије у пикселима и онемогућите његову промену величине задржавајући параметре као 0.
ако __наме__ == "__главни__":
гуиВиндов = Тк()
гуиВиндов.титле(„ГУИ календар“)
гуиВиндов.геометри('500к550')
гуиВиндов.ресизабле(0, 0)
Дефинишите четири оквира за наслов заглавља, унос месеца и године, екран и дугмад. Обавља функцију контејнера, усмеравајући постављање других виџета. Он уређује распоред и обезбеђује допуну за ове виџете користећи правоугаоне делове на екрану.
Организујте оквире у блокове пре него што их ставите у прозор помоћу паковање() методом. Подесите вредност проширења на тачно да бисте омогућили да виџет промени величину и прошири се у свом доступном простору. Подесите испунити атрибут за оба да би се омогућило да се виџет прошири и заузме цео прозор у правцу к и у.
хеадер_фраме = Оквир (гуиВиндов)
ентри_фраме = Оквир (гуиВиндов)
ресулт_фраме = Оквир (гуиВиндов)
буттон_фраме = Оквир (гуиВиндов)
хеадер_фраме.пацк (екпанд=Истина, филл="и једно и друго")
ентри_фраме.пацк (екпанд=Истина, филл="и једно и друго")
ресулт_фраме.пацк (екпанд=Истина, филл="и једно и друго")
буттон_фраме.пацк (екпанд=Истина, филл="и једно и друго")
Наведите три ознаке за заглавље, месец и годину. Подесите родитељски прозор у који желите да га поставите, текст који ће приказати, стилове фонта заједно са бојом фонта. Спакујте и поставите етикете на одговарајући положај. стручни сарадник ИнтВар() са ентри_фраме за постављање и примање целобројних података.
хеадер_лабел = Ознака (хеадер_фраме, тект="КАЛЕНДАР",
фонт=('ариал', '45', 'одважан'), фг="#А020Ф0")хеадер_лабел.пацк (екпанд=Истина, филл="и једно и друго")
монтх_лабел = Ознака (ентри_фраме, тект="Месец дана:",
фонт=("ариал", "20", "одважан"), фг="#000000")иеар_лабел = Ознака (ентри_фраме, тект="Година:",
фонт=("ариал", "20", "одважан"), фг="#000000")
месец_ознака.место (к=30, и=0)
година_ознака.место (к=275, и=0)
монтх_вар = ИнтВар (ентри_фраме)
иеар_вар = ИнтВар (ентри_фраме)
Узмите тренутни месец, годину и подесите га на променљиву ИнтВар(). Користите Спинбок виџет да одредите опсег вредности за корисника. Подесите опсег вредности које ће Спинбок садржати, ширину, тренутну вредност коју треба да садржи и стилове фонта. Поставите кутије на одговарајући начин.
текући_месец = датум.данас().месец
текућа_година = датум.данас().година
монтх_вар.сет (тренутни_месец)
иеар_вар.сет (тренутна_година)монтх_бок = Спинбок (ентри_фраме, фром_=1, то=12, ширина="10",
тектвариабле=монтх_вар, фонт=('ариал','15'))иеар_бок = Спинбок (ентри_фраме, фром_=0000, то=3000, ширина="10",
тектвариабле=иеар_вар, фонт=('ариал','15'))
месец_кутија.место (к=130, и=5)
година_кутија.место (к=360, и=5)
Декларисајте текстуално поље и подесите његов надређени прозор, ширину, висину, стил фонта, стил 3Д анимације и ширину ивице. Организујте текстуални виџет и прогласите три дугмета за приказ, ресетовање и затварање прозора. Дугмад садрже додатно својство боје позадине и својство команде.
Користећи својство команде, можете подесити функцију коју треба да изврши након клика. Поставите дугмад у један ред са довољно простора између сваког од њих.
цалендар_фиелд = Текст (оквир_резултата, ширина=20, висина=8,
фонт=("Курир", "18"), рељеф=ГРЕБЕН, ширина границе=2)цалендар_фиелд.пацк()
дисплаи_буттон = Дугме (буттон_фраме, тект="ПРИКАЗ", бг="#А020Ф0",
фг=„#Е0ФФФФ“, цомманд=принтЦалендар, фонт=('ариал', '15'))ресет_буттон = Дугме (буттон_фраме, тект="РЕСЕТОВАЊЕ", бг="#А020Ф0",
фг=„#Е0ФФФФ“, цомманд=ресет, фонт=('ариал','15'))цлосе_буттон = Дугме (буттон_фраме, тект="БЛИЗУ", бг="#А020Ф0",
фг=„#Е0ФФФФ“, цомманд=цлосе, фонт=('ариал','15'))
дисплаи_буттон.плаце (к=55, и=0)
ресет_буттон.плаце (к=210, и=0)
цлосе_буттон.плаце (к=350, и=0)
Тхе маинлооп() функција каже Питхон-у да покрене Ткинтер петљу догађаја и ослушкује догађаје (као што је притисак на дугме) док не затворите прозор.
гуиВиндов.маинлооп()
Саставите сав код да бисте видели свој ГУИ календар у акцији.
Пример излаза ГУИ календара
По покретању програма изнад програма приказује се прозор са тренутним месецом и датумом. Дугме Ресет приказује исти екран када се кликне.
Када се месец постави на 3, а година на 2000, програм приказује календар за март 2000. Притиском на дугме Затвори, програм уништава прозор и зауставља његово извршавање.
Преузми неке ГУИ пројекте за почетнике користећи Питхон
Прављење ГУИ апликација никада није било лакше. Питхон-ов Ткинтер модул пружа много корисних виџета које можете у потпуности прилагодити са врло мало кода. Уз то, добијате приступ менаџерима распореда као што су пакети, мрежа и елементи за постављање према вашој жељи.
Можете да направите пробну игру за куцање, палету боја, конвертор валута или калкулатор да бисте започели. Ове апликације су забавне за прављење и са лакоћом ће развити ваше објектно оријентисане вештине програмирања.