Proiecte Cu Python (GUI & Tkinter)
Proiecte Cu Python (GUI & Tkinter)
Python este unul dintre cele mai populare ș i versatili limbaje de programare
limbile din industria tehnologică. Cu toate acestea, în ciuda faptului că
popularitate ș i versatilitate, stăpânirea lor poate fi o provocare,
în special pentru începători. Provocări tehnice, cum ar fi
dezgheț area ș i termenele strânse pot cauza stres ș i anxietate,
ș i avansarea în carieră ș i menț inerea la curent cu cele mai recente
Dezvoltările în domeniu pot fi copleș itoare.
Table of Contents
Conț inuturi
Despre Autori
Table of Contents
Proiecte GUI Tkinter cu Python
PART 1: Introducere în modulul Tkinter Python
Cerinț e preliminare pentru Tkinter
Feronare Tkinter
Fereastra de top-level Tkinter
Widgets Tkinter
Cadre Tkinter
Exemplu de bază Tkinter
Summary:
PART 3: Feronici Tkinter
Feronetele Tkinter
Exemplu de feronerie Tkinter:
Fereastră personalizată Tkinter
Rezumat:
PART 4: Widget-uri Python Tkinter
Widgeturi Tkinter
Rezumat:
PART 5: Managerul de Geometrie Tkinter Python
Controlul aspectului aplicaț iei Tkinter
1. Tkinter pack() Manager de geometrie
Algoritm de ambalare:
Exemplu de manager de geometrie Tkinter pack() :
Summary:
PART 6: Widget-ul Label Tkinter din Python
Widget-ul Label Tkinter
Exemplu de widget Label Tkinter
Widgetul Label Tkinter - Un alt exemplu
Summary:
PART 7: Widgetul Buton Tkinter Python
Widget de Buton Tkinter
Exemplu de Widget Buton Tkinter
Widget-ul Button Tkinter - Adăugaț i stil ș i manejer de evenimente
Rezumat:
PART 8: Widget Checkbutton Python Tkinter
Widget-ul Checkbutton Tkinter
Metodele widget-ului Checkbutton Tkinter:
Exemplu de widget Checkbutton Tkinter
Summary
PART 9: Widget-ul Radiobutton în Python Tkinter
Widgetul Radiobutton Tkinter
Metodele widget-ului Radiobutton Tkinter:
Exemplu de widget Radiobutton Tkinter
Widgetul Radiobutton Tkinter Un Alt Exemplu
Summary:
PART 10: Widgetul Entry din Python Tkinter
Widget de introducere Tkinter
Rezumat:
PART 16: Widget-ul Listbox din Python Tkinter
Widget Listbox Tkinter
Opț iuni pentru widget-ul Listbox Tkinter:
Sumar:
PART 26: Aplicaț ie de Editor de Text Folosind Tkinter (Proiect Python)
1. Crearea tuturor widgeturilor necesare
Explicaț ia codului de mai sus:
[Link] aspectului aplicaț iei
1. Funcț ie pentru a deschide fiș ierul
Explicaț ie:
Funcț ia de Salvare a Fiș ierului
Explicaț ie:
PART 27: Aplicaț ie de redare muzică folosind Tkinter (Proiect Python)
Biblioteci utilizate pentru aplicaț ia de redare muzicală:
1. Tkinter
2. Modul Pygame
3. Modul OS
Clasa MusicPlayer
1. Constructor _init_
Funcț ia playsong()
3. Funcț ia stopsong()
4. Funcț ia pausesong()
5. Funcț ia unpausesong()
6. Looparea ferestrei de bază
Clasa Cărămidă
Clasa Joc
Cod complet pentru jocul Brick Breaker:
Brick Breaker Game UI:
PART 29: Aplicaț ie de calculator folosind limbajul Python
Ce este un calculator?
Cod sursă pentru aplicaț ia de calculator
Summary:
PART 30: Ceas de alarmă folosind limbajul Python
Paș i pentru a face un ceas deș teptător folosind Python.
Ceas de alarmă folosind Python cu cod sursă
Cod pentru importarea modulelor
Concluzie
PART 31: Joc de ghicit numere în Python
Regulile jocului de ghicit numere
Ieşire-
PART 33: Aplicaț ie de Notificare pe Desktop Proiect Python
CeYoVeț i descoperi în acest articol
Pasul 1: Importarea bibliotecilor
Output:
Cum pot dezactiva notificările?
Concluzie
[Link]:
În Python, Tkinter este o interfaț ă grafică standard pentru utilizator.
pachetul) Tkinter este GUI-ul implicit al Python
modul ș i, de asemenea, cea mai comună modalitate care este utilizată
pentru programarea GUI în Python. Reț ineț i că Tkinter este un
set de wrapperi care implementează widget-urile Tk ca Python
cursuri.
[Link]:
Aceasta este, practic, o interfaț ă grafică open-source, multiplatformă.
un set de instrumente care este scris în C++. De asemenea, o alternativă la
Tkinter.
[Link]:
JPython este o platformă Python pentru Java care oferă
Acces fără probleme al scripturilor Python la clasa Java
Biblioteci pentru maș ina locală.
Vom aborda programarea GUI cu Tkinter.
Ce este Tkinter?
Tkinter în Python ajută la crearea aplicaț iilor GUI cu un
minim deranj. Printre diversele cadre GUI, Tkinter este
singurul cadru care este integrat în Standardul Python
Bibliotecă.
Instalaț i Tkinter
Probabil că Tkinter este deja instalat pe sistemul tău
sistem împreună cu Python. Dar nu este întotdeauna adevărat. Aș a că să
verifică mai întâi dacă este disponibil.
Paș ii de mai sus ar putea suna ca o prostie acum. Dar doar citeș te
pe toate, ș i vom explica totul pe măsură ce ne desfăș urăm
acest tutorial.
2. Funcț ia Themainloop()
Această metodă este folosită pentru a porni aplicaț ia.
Funcț ia mainloop() este o buclă infinită care este folosită pentru a rula
aplicaț ia, va aș tepta să apară un eveniment ș i să proceseze
evenimentul atâta timp cât fereastra nu este închisă.
Summary:
Cu aceasta am încheiat introducerea în Tkinter, noi
am instalat modulul Tkinter ș i ș tiu chiar ș i ce sunt
Feronici ș i Widgeturi în Tkinter. De asemenea, ne creăm primul
Aplicaț ie GUI Tkinter ș i rulaț i-o. În următorul tutorial, vom învăț a
mai multe despre widget-urile Python Tkinter.
PARTEA 2: Feronerie Tkinter,
Widgeturi ș i rame
În acest tutorial, vom acoperi elementele de bază ale modulului Tkinter,
pentru a explica ce este un TkinterWindow, Widgets, ș i
Frame-urile care sunt bazele aplicaț iei GUI în
Tkinter.
Ori de câte ori o acț iune este efectuată pe un widget, un eveniment este
generated, which we can handle to perform any operation.
Evenimentele (comportamentul widget-urilor) pot include apăsarea unui
button,movement of the mouse,hitting the return
sau tasta Enter, câș tigând sau pierzând „focus”, etc.
Întregul sistem de evenimente care are loc de la
începutul până la sfârș itul oricărei interfeț e grafice
aplicaț ia este ceea ce îl conduce ș i, prin urmare, este de asemenea
cunoscut ca Procesare Pe Bază de Evenimente.
Să luăm un exemplu simplu de miș care a mouse-ului:
Presupunem că cursorul mouse-ului este doar aș ezat.
undeva, deasupra aplicaț iei tale GUI. Dacă tu
va muta mouse-ul într-o altă parte a dumneavoastră
aplicaț ie, ceva trebuie să cauzeze miș carea
mouse-ul să fie replicat de cursorul de pe
ecran (deasupra aplicaț iei tale GUI). Aceste
sunt evenimente de 'miș care a cursorului' pe care sistemul trebuie să le
proces pentru a ilustra cursorul tău miș cându-se peste
fereastră. La momentul în care te vei opri din miș care
mouse, nu mai trebuie procesate alte evenimente, aș a că
totul rămâne din nou nemiș cat pe ecran.
Iată câteva definiț ii de bază prin care vei fi
capabil să înț eleagă conceptul de feronerie, widget-uri ș i
frame-uri în Tkinter.
Widget-uri Tkinter
Termenul „Widgets” este un termen generic care se referă la
blocurile de construcț ie care alcătuiesc o aplicaț ie într-o
interfaț ă grafică de utilizator.
Container
Sub această categorie, widget-urile care se află sunt cadre,
cadru de etichete, fereastră de nivel superior ș i fereastră divizată.
Butonii
Sub categoria Butoane, există butoane,
butoane radio, butoane de verificare (checkbox) ș i butoane de meniu.
Widget-uri de text
Sub categoria widget-urilor de text, există etichete,
text
Widgeturi de Intrare
Cadre Tkinter
Un cadru este în esenț ă o zonă rectangulară care poate conț ine altele
widgeturi. În Tkinter, există un widget Frame care este baza
unitate de organizare pentru aranjamente complexe. Este un widget care
nu are niciun stil special sau componentă GUI de sine stătătoare. Este doar
a fost folosit pentru a ț ine alte widget-uri Tkinter în cazul unei interfeț e grafice complexe
dispuneri.
Notă: Este important de menț ionat aici că ori de câte ori un widget este
s-a creat, de asemenea, o relaț ie părinte-copil care este creată.
Ia doar un exemplu, dacă pui un buton într-un cadru, atunci
widget-ul frame este numit părintele widget-ului Button.
Sumar:
In this tutorial, we learned about the basic building blocks of
Aplicaț ie GUI folosind Tkinter care sunt Windows, Widgets,
ș i Frame-uri, care sunt folosite pentru a dezvolta diferite GUI
aplicaț ii. În următorul tutorial, vom învăț a cum să creăm o
Fereastra Tkinter care este punctul de plecare pentru orice
aplicaț ie, deoarece într-o fereastră Tkinter adăugăm totul
widget-uri.
PARTEA 3: Feronerie Tkinter
În acest tutorial, vom învăț a despre feronerele Tkinter în Python
care este fereastra principală a aplicaț iei GUI în interior
în care fiecare alt component funcț ionează. Am acoperit baza
Componente ale aplicaț iei GUI Tkinter în care avem
a explicat cum sunt feroneriile, widgeturile ș i cadrele Tkinter
blocuri de construcț ie ale unei aplicaț ii Tkinter.
Feronici Tkinter
Fereastra Tkinter este elementul de bază al
Tkinter GUI. Fereastra Tkinter este un container în care toate
alte elemente GUI (widgets) în direct.
Iată sintaxa pentru crearea unei feronii de bază Tkinter:
win = Tk()
Da, folosim funcț ia Tk() pentru a crea aplicaț ia noastră Tkinter
fereastra în care sunt adăugate toate celelalte componente.
Summary:
În acest tutorial, am învăț at cum să creăm o fereastră Tkinter pentru
creează o aplicaț ie GUI. Fereastra Tkinter conț ine toate
widget-uri care fac aplicaț ia.
PARTEA 4: Python Tkinter
Widgets
În acest tutorial, vom aborda o prezentare generală a widget-urilor Tkinter
în Python. Aceste widget-uri sunt unităț ile funcț ionale pe orice
Aplicaț ie GUI Tkinter.
Widgets Tkinter
Există diverse controale, cum ar fi butoane, etichete,
bare de derulare, butoane radio ș i căsuț e de text utilizate într-o interfaț ă grafică
aplicaț ie. Aceste mici componente sau controale ale Grafice
Interfaț a Grafică a Utilizatorului (GUI) este cunoscută sub denumirea de widget-uri în Tkinter.
Summary:
Aș adar, în acest tutorial, am primit o introducere de bază în Trinket
Widgets. În paginile noastre viitoare de tutorial, vom acoperi fiecare
widget în detaliu cu exemplele lor de cod respective.
PARTEA 5: Python Tkinter
Manager de geometrie
În acest tutorial, vom învăț a cum să controlăm layout-ul
Aplicaț ie cu ajutorul TkinterGeometry
Manageri.
side
Această opț iune specifică de ce parte să împacheteze widgetul
împotriva. Dacă doriț i să împachetaț i widget-uri vertical,
folosiTOPcare este valoarea implicită. Dacă vrei să
aș ează widget-urile orizontal, foloseș te STÂNGA.
extinde
Această opț iune este utilizată pentru a specifica dacă widget-urile
ar trebui extins pentru a umple orice spaț iu suplimentar în
maestru de geometrie sau nu. Valoarea sa implicită este false. Dacă este
dacă este fals atunci widgetul nu este extins altfel widget
se extinde pentru a umple spaț iul suplimentar.
Exemplu de Manager Geometric Tkinterpack() :
Să discutăm un exemplu în care vom vedea ce se întâmplă
când împachetezi() trei widget-uri Frame colorate (aici este Tkinter
Widget Cadru) într-o fereastră:
importtkinterastk
win = [Link]()
adaugă un cadru portocaliu
frame1 = [Link](master=win, width=100, height=100,
bg=“orange”)
[Link]()
adăugaț i cadru albastru
Tkinterpack() cu parametrii
Să luăm câteva exemple de cod folosind parametrii
această funcț ie umple, îmbină ș i extinde.
Puteț i setaumpleargument pentru a specifica în
în ce direcț ie vrei ca cadrele să se umple. Dacă vrei
pentru a completa direcț ia orizontală, opț iunea este tk.X,
în timp ce, tk.Y este folosit pentru a umple vertical ș i pentru a umple în ambele direcț ii
[Link] este utilizat.
[Link](fill=tk.X)
frame2 = [Link](master=win, height=50, bg=“yellow”)
[Link](fill=tk.X)
frame3 = [Link](master=win, height=40, bg=“blue”)
[Link](fill=tk.X)
[Link]()
Dacă vei rula acest cod de mai sus în sistemul tău, atunci poț i
vedeț i, acest output este capabil să se extindă în ambele direcț ii.
Coloană
Această opț iune specifică numărul coloanei în care
widget-ul urmează să fie plasat. Indexul coloanei celei mai din stânga este 0.
Rang
Această opț iune specifică numărul rândului în care se află widgetul
urmează să fie plasat. Rândul cel mai de sus este reprezentat de 0.
Coloana extinsă
Această opț iune specifică lăț imea widget-ului. Aceasta este în principal
reprezintă numărul de coloane până la care,
coloana este extinsă.
Îmbinare pe rânduri
Această opț iune specifică înălț imea widget-ului. Se referă în principal la
reprezintă numărul de rânduri până la care, rândul este
extins.
padx, pady
Această opț iune reprezintă în principal numărul de pixeli de
spatiul de umplere care trebuie adăugat widget-ului imediat în exterior
marginea widget-ului.
ipadx, ipady
Această opț iune este utilizată în principal pentru a reprezenta numărul de
pixeli de margine ce trebuie adăugaț i la widget în interiorul
marginea widget-ului.
Lipicios
Dacă o celulă este mai mare decât un widget, atunci sticky este
folosit în principal pentru a specifica poziț ia widget-ului în interior
celula. Este practic o concatenare a literelor lipicioase
care reprezintă poziț ia widget-ului. Poate fi N,
E, V, S, NE, NV, NS, EW, ES.
forjinrange(3):
cadru = [Link]
master = win,
relief = [Link],
borderwidth =1
)
[Link](row=i, column=j)
label = [Link](master=frame, text=f”Row{i}\nColumn
{j}”)
[Link]()
[Link]()
Dacă vrei să adaugi puț in padding, atunci poț i face asta folosind
fragments de code următoare:
importtkinterastk
win = [Link]()
pentru i în intervalul (5):
forjinrange(3):
cadru = [Link](
master=win,
relief=[Link],
borderwidth=1
)
[Link](row=i, column=j, padx=5, pady=5)
label = [Link](master=frame, text=f”Row{i}\nColumn
{j}”)
[Link]()
[Link]()
x, y
Această opț iune indică offsetul orizontal ș i vertical
în pixeli.
height, width
Această opț iune indică înălț imea ș i greutatea widget-ului
în pixeli.
ancoră
Această opț iune reprezintă în principal poziț ia exactă a
widget în interiorul containerului. Valoarea implicită (direcț ie)
esteNWacela (colț ul din stânga sus).
mod de margine
Această opț iune indică valoarea implicită a bordurii
tipul care esteÎN INTERIOR ș i se referă de asemenea la a ignora
părintele este în interiorul graniț ei. Cealaltă opț iune este ÎN AFARĂ.
relx, rely
Această opț iune este folosită pentru a reprezenta numărul zecimal între 0.0 ș i
1.0 ș i este offsetul în direcț ia orizontală ș i verticală
direcț ie.
relheight, relwidth
Această opț iune este folosită pentru a reprezenta valoarea zecimală între
0.0 ș i 1.0 indicând fracț ia înălț imii părintelui
ș i lăț ime.
Exemplu de Manager de Geometrie Tkinterplace() :
Fragmentul de cod pentru aceasta este dat mai jos:
Summary:
În acest tutorial, am învăț at cum putem să ne poziț ionăm widget-urile.
în interiorul ramei sau feronerie a aplicaț iei noastre GUI. Noi
am învăț at despre cei trei manageri de geometrie Tkinter, ș i anume,
pack(), grid() ș i place().
De la următorul tutorial, vom începe să acoperim diferite Tkinter
widgeturi.
PARTEA 6: Python Tkinter
Widget Etichetă
În acest tutorial, vom aborda widgetul TkinterLabel
Python, care este folosit pentru a crea un Label în aplicaț ia GUI
în care putem afiș a orice text sau imagine.
Widgetul label în Tkinter este folosit pentru a afiș a
cutiiundeputecosă imagini ș i text.
Widgetul label este folosit în principal pentru a oferi un
mesaj despre celelalte widgeturi folosite în Python
Aplicaț ie pentru utilizator.
Poț i schimba sau actualiza textul din interiorul etichetei
widget oricând doreș ti.
Acest instrument foloseș te o singură fontă în acelaș i timp.
afişând un text.
Poț i îndeplini ș i alte sarcini, cum ar fi sublinierea unor
Parte din text ș i poț i, de asemenea, să întinzi textul la
mai multe linii.
Există diverse opț iuni disponibile pentru a configura
textul Partea textului afiș ată în Etichetă.
Summary:
În acest tutorial, am acoperit Widget-ul Label Tkinter care este
folosit pentru a afiș a text ș i imagini în aplicaț ia GUI Tkinter sau pentru
adăugaț i texte cu câmpuri de introducere a formularelor aș a cum am făcut în
exemplu de mai sus.
PARTEA 7: Python Tkinter
Widget de buton
În acest tutorial, vom aborda widgetul Button din Tkinter.
modul în Python.
Widgetul Button din Tkinter este folosit în principal pentru a adăuga un buton
în orice aplicaț ie GUI. În Python, în timp ce foloseș ti Tkinter
widget de buton, putem modifica cu uș urinț ă stilul butonului
ca adăugarea unor culori de fundal, ajustarea înălț imii ș i
lăț imea butonului, sau plasarea butonului etc. foarte
cu uș urinț ă.
[Link]("200x100")
b = Button(win, text =“Submit”)
[Link]()#utilizând geometria pack()
[Link]()
[Link](side = DREAPTA)
[Link](side = SUS)
[Link](side = BOTTOM)
[Link]()
Summary:
În acest tutorial, am învăț at cum să facem un buton Tkinter
widget cu diferite opț iuni, cum ar fi schimbarea stilului
buton, adăugând text pe buton sau poziț ionând butonul. Noi
de asemenea, am văzut un exemplu de cod pentru adăugarea unei funcț ii de gestionare a evenimentelor
Metodă
Description
Nume
Această metodă în widget-ul checkbutton este folosită pentru a invoca metoda
invocare()
asociat cu butonul de verificare.
Această metodă în widget-ul checkbutton se numeș te pentru a activa
selectaț i()
buton de bifare.
Această metodă în widget-ul checkbutton este apelată pentru a opri
deselectare()
buton de verificare.
Această metodă din widget-ul checkbutton este folosită pentru a comuta între
comutare()
butoane de verificare diferite.
Această metodă în widgetul checkbutton este folosită pentru a comuta între activ
flash()
ș i culori normale.
Summary
Aș adar, în acest tutorial am învăț at cum să creăm casete de selectare într-o aplicaț ie GUI folosind
Widget-ul checkbutton Tkinter.
PARTEA 9: Radiobutton Python Tkinter
Widget
În acest tutorial, vom acoperi widgetul TkinterRadiobutton în Python, care este
utilizat atunci când dorim să adăugăm un buton radio în interfaț a grafică a aplicaț iei noastre.
Widgetul Tkinter Radiobutton este folosit pentru a implementa opț iuni multiple.
creat în principal în formularele de introducere a datelor de utilizator.
Metodă
Description
Name
deselect() Această metodă este utilizată pentru a deselecta sau a dezactiva butonul radio
Această metodă este utilizată în general pentru a apela o funcț ie atunci când starea radio
invocare()
butonul se schimbă.
Această metodă este folosită în general pentru a activa butonul radio între acesta
flash()
culori normale ș i active de multe ori.
v = StringVar(win, "1")
Aici este un dicț ionar pentru a crea mai multe butoane
options = {” Option A”:“1”,
“Option B”:“2”,
“Option C”:“3”,
“Option D”:“4”
}
Vom folosi un Ciclu doar pentru a crea multiple
# Radiobuttons în loc să creăm fiecare buton separat
pentru(txt, val)în opț [Link]():
Notă: Dacă veț i încerca acest fragment de cod singur, veț i vedea că în
puteț i selecta doar un singur buton în acelaș i timp.
style = Style(win)
[Link]("TRadiobutton", background = "albastru deschis",
foreground =“orange”, font = (“arial”,14,“bold”))
Dictionar pentru a crea mai multe butoane
values = {“RadioButton 1”:“1”,
“RadioButton 2”:“2”,
“RadioButton 3”:“3”
}
pentru(text, valoare)î[Link]():
mainloop()
Codul de mai sus va schimba stilul fontului, precum ș i fundalul ș i culoarea textului.
culori. În TRadiobuttonul de mai sus este utilizată în clasa de stil, care se aplică automat
stilizarea tuturor butoanelor radio disponibile.
Summary:
În acest tutorial, am învăț at despre widgetul Radiobutton care este folosit pentru a crea
multiple opț iuni dintre care poate fi selectată o singură. Acesta este folosit în principal atunci când noi
creează un formular de utilizator, asemănător unui formular de înregistrare.
PARTEA 10: Python Tkinter
Widget de Introducere
În acest tutorial, vom acoperi widgetul entry din Tkinter.
Python cu diversele sale opț iuni ș i cu ajutorul lui Few
Exemple, vom înț elege conceptul în detaliu.
Dacă trebuie să obț ii un mic text de la un utilizator, cum ar fi un nume sau
o adresă de email sau un număr de contact, atunci foloseș te
un widget de intrare.
Rezumat
În acest tutorial, am învăț at cum să folosim widgetul Entry Tkinter
pentru a crea un câmp de introducere a textului în timp ce creezi o aplicaț ie GUI.
PARTEA11: Python Tkinter
Widget de Mesaj
În acest tutorial, vom învăț a despre TkinterMessage
widgetul în Python care este folosit pentru a afiș a un mesaj de text pe
aplicaț ia GUI pe care o creezi folosind Tkinter.
Widgetul TkinterMessage în Python este folosit în principal
a arăta un mesaj utilizatorului care foloseș te
aplicaț ie.
Mesajul afişat de TkinterMessage
Widgeturi de tip non-editabil ș i acesta poate fi în
multilinie.
Mesajul afişat de TkinterMessage
[Link] font.
Funcț ionalitatea acestui widget este foarte similară
cătreWidgetul Label Tkinterdar există o
diferenț a ș i acesta este widgetul de mesaj
poate înfăș ura automat textul.
Summary:
Aș adar, cu aceasta, am acoperit widgetul de mesaje Tkineter
care este folosit pentru a arăta mesaje în aplicaț ia GUI Tkinter. Noi
poate, de asemenea, să creeze un widget de mesaj dinamic pentru a afiș a o eroare sau
mesaj de succes în aplicaț ia Tkinter.
PARTEA 12: Python Tkinter
Widget de Meniu
În acest tutorial, vom acoperi widgetul TkinterMenu
Python, care este folosit pentru a crea meniuri cu opț iuni pentru utilizatori să
alege din.
Widgetul TkinterMenu este folosit pentru a crea diferite tipuri de
meni în aplicaț ia Python.
După ce aț i rulat codul de mai sus, veț i vedea ieș irea de mai sus.
Ori de câte ori vei face clic pe elementul de meniu Hello StudyTonight!
atunci va imprima ahello! pe consola ta. În timp ce dai clic
Elementul de meniu theQuit! va închide aplicaț ia.
Summary:
În acest tutorial, am învăț at cum să creăm un meniu pentru noi
Aplicaț ie Tkinter ș i cum să adaugi elemente de meniu la aceasta ș i
efectuează o operaț iune atunci când utilizatorul selectează orice elemente de meniu.
PARTEA 13: Python Tkinter
Widget buton menu
În acest tutorial, vom acoperi TkinterMenubutton
widget în Python care este folosit pentru a crea un dropdown
meniul pe care utilizatorul îl poate face clic pentru a vedea
cursor
Această opț iune indică cursorul când
mouse pluteș te deasupra butonului de meniu.
imagine
Această opț iune indică imaginea afiș ată pe
butonul de meniu.
Această opț iune indică culoarea de evidenț iere când
higlightcolor
există o concentrare pe buton
Această opț iune este folosită pentru a indica naș terea.
care sunt liniile de text multiple
reprezentat. Pentru justificarea la stânga, este setat la
justifica
STÂNGA ș i este setat pe DREAPTA pentru dreapta
justification, and CENTER for the center
justificare.
padx
Această opț iune indică umplutura suplimentară
al widgetului în direcț ia orizontală.
pady
Această opț iune indică umplutura suplimentară
al widget-ului în direcț ia verticală.
Această opț iune este folosită pentru a indica meniul
meniu
asociat cu butonul de meniu
Această opț iune specifică lăț imea widget-ului.
lăț ime
Pentru butoanele textuale, există ca un număr de
litere sau pentru butoane de imagine indică
pixeli
În acest caz, dacă valoarea acestei opț iuni este setată la un
Wraplength număr pozitiv, liniile de text vor fi
împachetat pentru a se potrivi în această lungime.
Summary:
În acest tutorial, am acoperit widgetul Menubutton Tkinter
care este folosit pentru a crea meniuri derulante într-un Tkinter
aplicaț ie.
PARTEA 14: Python Tkinter
Widget Cadru
Widgetul TkinterFrame este folosit pentru a grupa ș i organiza
widget-uri într-o manieră mai bună ș i prietenoasă. Widget-ul TheFrame este
de fapt un recipient (un recipient invizibil) al cărui scop este să
ț ine alte widgeturi ș i aranjează-le în raport cu fiecare
altul. Widget-ul cadru Tkinter formează un dreptunghi
regiune pe ecran.
Acț ionează practic ca o clasă de bază care apoi implementează
widget-uri complexe. Este caeticheta HTML div, care este doar pentru
definiț i diviziuni pe o pagină web în care avem alte HTML
elemente.
[Link]()
Summary:
În acest tutorial, am învăț at despre widgetul canvas Tkinter
care poate fi folosit pentru a desena orice pe pânză, poate un
grafic, ș i imagine, sau o formă dinamică.
PARTEA 16: Python Tkinter Listbox
Widget
În acest tutorial, vom acoperi widgetul TkinterListbox în Python, care este folosit pentru
afiș ează diferite tipuri de articole utilizatorului sub formă de listă într-o cutie ș i utilizatorul
poț i selecta articolele.
cursor
Cu ajutorul acestei opț iuni, indicatorul mouse-ului va arăta
tipul cursorului, cum ar fi punct, săgeată, etc.
font Această opț iune indică tipul de font al elementelor din Listbox.
uș urare
Această opț iune indică tipul de margine. Valoarea implicită
este SUBMERS
Numele opț iunii Description
selectaț i fundalul
This option is used to indicate thebackground colorthat is
folosit pentru a afiș a textul selectat.
Această opț iune este folosită pentru a determina numărul de articole care pot
selectmode fi selectat din listă. Poate seta
toBROWSE,SINGLE,MULTIPLE,EXTENDED.
Această opț iune este utilizată pentru a reprezenta lăț imea widget-ului în
lăţime
caractere.
Această opț iune este folosită pentru a permite utilizatorului să deruleze Listbox-ul
xscrollcommand
orizontal.
Această opț iune este folosită pentru a permite utilizatorului să deruleze Listbox-ul.
yscrollcommand
vertical.
În exemplul de cod de mai sus, am creat un widget Listbox simplu cu câteva elemente
împreună cu specificarea elementului de top care este titlul pe widgetul Listbox.
Rezumat:
În acest tutorial, am învăț at despre Widget-ul Listbox Tkinter, sintaxa sa de bază,
metode utilizate frecvent pentru widgetul ListBox ș i un exemplu de cod.
PARTEA 17: Python Tkinter
Widget de derulare
În acest tutorial, vom acoperi widgetul TkinterScrollbar.
Python, folosind care putem adăuga o bară de defilare pentru utilizator
interfaț a aplicaț iei noastre Tkinter.
Pentru a derula în sus, în jos, la dreapta sau la stânga conț inutul într-un Python
aplicaț ie desktop, widgetul TkinterScrollbar este folosit.
Numele
Description
Opț iune
Această opț iune reprezintă fundalul
fundal activ culoarea widget-ului atunci când este sub
concentrează-te.
bg
Această opț iune reprezintă fundalul
color of the widget
Această opț iune reprezintă dimensiunea limitei de
bd
widgetul. Valoarea implicită este de 2 pixeli.
highlightthickness
Această opț iune reprezintă grosimea
accentuează accentul
Această opț iune indică evidenț ierea
evidenț iere fundal
nd culoare când widget-ul nu este sub
focalizare
highlightcolor
Această opț iune indică evidenț ierea
culoare atunci când widgetul este sub focus
Această opț iune este folosită pentru a controla
comportamentul saltului de derulare. Dacă această opț iune
sari este setat la 1, atunci callback-ul este apelat la
timpul când utilizatorul eliberează mouse-ul
buton.
Această opț iune poate fi setată la orizontal
orient sau vertical, în funcț ie de orientare
al barei de derulare.
lăț ime
Această opț iune reprezintă lăț imea
bară de derulare.
Această opț iune este utilizată pentru a seta culoarea pentru
culoare transparentă
prin
Implicite, poț i schimba focalizarea prin tab
ia focalizarea acest widget. Dacă nu vrei acest lucru
comportament poț i seta această opț iune la 0.
Această opț iune este folosită în principal pentru a spune
get():
set(first, last):
Această metodă este folosită pentru a conecta bara de derulare la orice altceva.
widget. Aceasta este comanda isyscrollcommandorxscrollcommand a celorlalte
widget pentru această metodă.
Summary:
Aș adar, am acoperit widgetul Scrollbar din Tkinter. Este foarte
util unde avem o aplicaț ie Tkinter cu liste lungi sau
un widget care este prea lung pentru a se încadra în aplicaț ie
fereastră. Atunci putem folosi widget-ul Scrollbar pentru astfel de
aplicaț ii.
PARTEA 18: Python Tkinter
Widget de scalare
În acest tutorial, vom acoperi widgetul TkinterScale
Python care este folosit pentru a adăuga un obiect slider grafic care
utilizatorul poate glisa ș i alege un număr, ca valoare numerică este
ataș at acestui scale cu slider ș i, pe măsură ce muț i sliderul
sus/jos sau dreapta/stânga valoarea numerică ataș ată creș te
sau scade ș i poț i seta glisorul la valoarea dorită
selectaț i.
scale_val.config(text=sel, font=("Courier",16))
scl = Scale(win, variable=v, from_=60, to=1,
orient=VERTICAL
mainlabel = Label(win, text=“TheVertical Slider”)
btn = Button(win, text =“Show SliderValue”,
command = show,
bg =“darkblue”,
fg =“white”)
crearea unei alte etichete pentru a arăta valoarea scalei
scale_val = Label(win)
[Link](ancrează = CENTRU)
[Link]()
[Link]()
scale_val.pack()
[Link]()
Puteț i muta sliderul de jos în sus, deoarece este vertical.
slider. În exemplul dat, am adăugat de asemenea un buton pentru
aplicaț ia noastră ș i am definit o funcț iearată() că este
ataș at la widget-ul butonului ca un handler de eveniment. Aș a că după ce
utilizatorul foloseș te glisorul pentru a selecta orice valoare ș i apoi face clic pe
buton, valoarea va fi afiș ată într-un widget Label mai jos
buton.
Summary:
În acest tutorial, am învăț at despre widgetul Scale Tkinter
care este un bun component UI pentru a lua input numeric
valoare într-un interval specific de la utilizatorul final.
PARTEA 19: Python Tkinter
Toplevel Widget
În acest tutorial, vom acoperi widgetul TkinterToplevel.
Python care este folosit pentru a crea ș i a afiș a feronete de nivel superior
în afară de fereastra aplicaț iei.
fromtkinterimport*
win = Tk()
[Link]("200x200")
defopen():
top = Toplevel(win)
[Link]()
btn = Button(win, text=“open”, command=open)
[Link]ă(x=75, y=50)
[Link]()
Summary:
Deci acum ș tim ce este un widget Toplevel Tkinter ș i cum
pentru a-l crea. Widgetul Toplevel din Tkinter este bun pentru a arăta câteva
secț iunea aplicaț iei tale într-o fereastră diferită care este
afiș at în partea de sus a ferestrei principale a aplicaț iei.
PARTEA 20: Python Tkinter
Widget Spinbox
În acest tutorial, vom aborda widgetul TkinterSpinbox.
Python cu sintaxa sa ș i câteva exemple. Widget-ul Spinbox
în Tkinter în Python este folosit pentru a selecta o valoare din
intervalul specificat de valori.
Este diferit deWidgetul Scale Tkinter(Widget de scalare
fiind mai elegant) în ceea ce priveș te stilul, dar mai mult sau mai puț in, îndeplineș te
acelaș i scop.
De exemplu, când vrei să ai un meniu derulant de numere
valorile precum anul naș terii (din 1950 până în 2020) sau un meniu derulant
pentru ca utilizatorul să îș i aleagă vârsta, putem folosi Tkinter Spinbox
widget.
Summary:
Aș a funcț ionează un widget Spinbox în TKinter. Este folosit pentru
crearea unui input pentru un interval specificat de valori numerice, care
utilizatorul poate selecta. Dacă avem o gamă definită de numere, atunci este
mai bine să foloseș ti widget-ul Spinbox decât să foloseș ti aTkinter
Widget de intrare.
PARTEA 21: Python Tkinter
Widget cadran etichete
În acest tutorial, vom acoperi TkinterLabelFrame
widget în Python cu sintaxa sa ș i câteva exemple.
Widgetul LabelFrame este folosit în principal pentru a desena margini în jurul
widgeturile copil
[Link]()
[Link]()
Aș a cum poț i vedea în rezultatul de mai sus, am creat două
widget-uri labelframe, în care am adăugat text pentru
widgets labelframe, iar în interiorul widget-ului labelframe avem
widget onelabel. Putem avea atâtea widget-uri în interiorul
widget labelframe, aș a cum ne dorim.
Summary:
Aș adar, prin aceasta am încheiat widget-ul labelframe Tkinter
care este la fel ca eticheta fieldset HTML, dacă cunoș ti HTML.
widgetul labelframe este folosit pentru a crea o margine în jurul altora
widgets pentru a grupa alte widgets prezente în aplicaț ia ta.
PARTEA 22: Python Tkinter
Widget PanedWindow
În acest tutorial, vom acoperi widgetul TkinterPanedWindow care este în principal
un widget container care conț ine unul sau mai multe widgeturi copil care sunt de asemenea
cunoscut sub numele de Pane.
get(incepere_index, sfarsit_index) Această metodă este folosită pentru a obț ine textul din intervalul specificat.
adauga(child, optiuni) Această metodă este folosită pentru a adăuga o fereastră la o fereastră părinte.
defadunare():
x = int([Link]())
y = int([Link]())
leftdata =str(x+y)
[Link](1, leftdata)
prima fereastră cu panouri
w1 = PanedWindow()
[Link](fill=BOTH, expand=1)
leftinput = Entry(w1, bd=5)
[Link]ă(leftinput)
fereastră secundară
w2 = PanedWindow(w1, orient=VERTICAL)
[Link]ă(w2)
e1 = Intrare(w2)
e2 = Intrare(w2)
[Link](e1)
[Link](e2)
bottomBtn = Button(w2, text=“Addition”, command=addition)
[Link]ă(bottomBtn)
mainloop()
Aș a cum puteț i vedea mai sus, în rezultatul afiș at, avem o fereastră de aplicaț ie, în care noi
am 3 widget-uri Entry tkinter ș i 1 widget Button tkinter, stivuite folosind 2
Widgeturile PanedWindow sunt aranjate vertical, unele lângă altele.
Dacă vei introduce două numere în câmpurile de intrare din partea dreaptă ș i apoi vei face clic pe
Butonul de adăugare, rezultatul adunării numerelor din dreapta va fi afiș at în
widget de intrare pe partea stângă.
asta înseamnă că widget-ul este deja selectat pentru some operaț iuni
entry.focus_force()
[Link]ă(entru)
[Link](fill = BOTH, expand =True)
Pentru a arăta fereastra
[Link](sashrelief = RIDICAT)
buclăprincipală()
În exemplul de cod de mai sus, am creat mai multe widget-uri într-o fereastră împărț ită.
widget. De asemenea, am folosit variabila StringVar() ș i am folosit funcț ia focus_force()
a avea widget-ul de intrare în focus când aplicaț ia este încărcată.
Summary:
În acest tutorial, am învăț at despre widgetul PanedWindow, care este un widget grozav dacă
vrei să creezi un aranjament în formă de grilă cu mai multe coloane pentru widget-uri în aplicaț ia ta.
PARTEA 23: Python Tkinter Text
Widget
În acest tutorial, vom aborda widget-ul TkinterText în Python. Dacă doriț i
un editor de text în aplicaț ia ta desktop, atunci poț i folosi TkinterText
widget
Widget-ul text este folosit pentru a oferi o casetă de text pe mai multe linii (casetă de introducere)
pentru că în Tkinter căsuț a de text pe o singură linie este furnizată folosindWidget de intrare.
Metodă Description
index(index) Această metodă este folosită pentru a obț ine indicele specificat.
get(indiceîncepere, indicefinal)
Această metodă returnează caracterele specificate
interval
Metodă Description
tag_config()
Această metodă este folosită în principal pentru a eticheta ș irul care este prezent la
index specificat.
stergere_eticheta(numele_etichetei)
Această metodă este folosită în principal pentru a ș terge eticheta specificată.
index(mark)
Această metodă este folosită în principal pentru a obț ine indexul mărcii specificate.
marca_nume()
Această metodă este folosită pentru a obț ine toate numele mărcii în intervalul din text
widget.
mark_gravity(mark, gravity)
Pentru a obț ine gravitatea marcajului dat, această metodă va fi folosită.
mark_set(mark, index)
Această metodă este utilizată pentru a informa noua poziț ie a semnului dat.
mark_neconfigurat(mark)
[Link]("250x170")
Pentru a crea un widget de text ș i a specifica dimensiunea.
Rezumat:
În acest tutorial, am învăț at despre widgetul Text din Tkinter, care este utilizat atunci când dorim să adăugăm
a textarea in our application for taking large user inputs.
PARTEA 24: Python Tkinter
Mesaj de notificare
În acest tutorial, vom acoperi cum să creăm ș i să folosim Tkinter
MesajBox în timpul dezvoltării aplicaț iilor desktop.
Pentru a afiș a casete de mesaj într-o aplicaț ie desktop,
folosim modulul MessageBox în Tkinter.
Tkinter MessageBox
Pentru a utiliza modulul messagebox, trebuie mai întâi să-l importăm în
scriptul nostru python:
de la tkinter import messagebox
Următoarea este sintaxa de bază pentru a folosi caseta de mesaj:
messagebox.function_name(titlu, mesaj [, opț iuni])
În sintaxa de mai sus, am folosit următoarele:
numele_funcț iei
Acesta este folosit pentru a indica numele celui corespunzător
Funcț ia MessageBox.
title
Acesta este folosit pentru a indica textul care va fi afiș at în titlu
bara feroniei mesajului corespunzător.
mesaj
Aceasta este folosită pentru a indica textul care urmează să fie afiș at ca un
mesaj în caseta de mesaj.
opț iuni
Este folosit pentru a indica diverse opț iuni pentru a configura
MessageBox-ul. Există două valori pentru acesta ș i acestea
suntimplicitș ipărinte.
Rezumat:
În acest tutorial, am învăț at despre diferitele tipuri de mesaje
cutii pe care le putem crea pentru a arăta informaț ii utilizatorului sau pentru a lua
informaț ii din partea utilizatorilor, cum ar fi confirmarea unei acț iuni, etc. Mesajul
cutiile sunt ca feroneriile în care putem arăta erori, avertizări,
etc. către utilizator.
PART 25: Calculator
Aplicaț ie care foloseș te Tkinter
(Proiect Python)
În acest tutorial, vom acoperi cum să creăm un simplu
aplicaț ie de calculator folosind PythonTkinter.
Ce este un calculator?
Pentru cei care nu ș tiu, un calculator este practic o
program pe un computer care simulează comportamentul
orice calculatoare manuale utile pentru efectuare
Calculaț ii matematice. Este un dispozitiv foarte simplu folosit în
vieț ile noastre de zi cu zi. Acum toate smartphone-urile au de asemenea o
Aplicaț ie de calculator în ele.
În timp ce creezi o aplicaț ie GUI, există în principal două
steps:
de la tkinter import *
win = Tk()# Acesta este pentru a crea o fereastră de bază
câmpul de introducere
defbt_clear():
expresie globală
expression =””
input_text.set("")
# ‘bt_equal’:This method calculates the expression
# prezent în câmpul de introducere
defbt_equal():
expresie globală
result =str(eval(expression))# ‘eval’:This function is used
pentru a evalua expresia de tip ș ir direct
input_text.set(result)
expression =””
expression =””
'StringVar()': Este folosit pentru a obț ine instanț a câmpului de introducere
input_text = StringVar()
Hai să creăm un cadru pentru câmpul de input
input_frame = Cadru(win, lăț ime=312, înălț ime=50, bd=0,
highlightbackground=“black”, highlightcolor=“black”,
highlightthickness=2)
input_frame.pachează(laterale= SUS)
Să creăm un câmp de introducere în interiorul 'Frame'
input_field = Entry(input_frame, font=('arial',18,'bold'),
textvariable=input_text, width=50, bg=“#eee”, bd=0,
justify=DREAPTA
input_field.grid(linie=0, coloană=0)
input_field.pack(ipady=10)# 'ipady' este umplutură internă pentru
creș te înălț imea câmpului de introducere
Să creăm un alt 'Cadru' pentru butonul de mai jos
cadru_de_intrare
btns_frame = Cadru(win, lăț ime=312, înălț ime=272.5,
bg=“grey”)
btns_frame.pune()
prima linie
clear = Button(btns_frame, text =“C”, fg =“black”, width =
32, height =3, bd =0, bg =“#eee”, cursor =“hand2”,
command =lambda: bt_clear()).grid(row =0, column =0,
columnspan =3, padx =1, pady =1
divide = Button(btns_frame, text =“/”, fg =“black”, width =
10, height =3, bd =0, bg =“#eee”, cursor =“hand2”,
command =lambda: btn_click(“/”)).grid(row =0, column =3,
padx =1, pady =1)
rândul doi
seven = Button(btns_frame, text =“7”, fg =“black”, width =
10, height =3, bd =0, bg =“#fff”, cursor =“hand2”,
command =lambda: btn_click(7)).grid(row =1, column =0,
padx =1, pady =1)
eight = Button(btns_frame, text =“8”, fg =“black”, width =
10, height =3, bd =0, bg =“#fff”, cursor =“hand2”,
comandă = lambda: btn_click(8)).grid(rând = 1, coloană = 1,
padx =1, pady =1)
nine = Button(btns_frame, text =“9”, fg =“black”, width =
10, height =3, bd =0, bg =“#fff”, cursor =“hand2”,
command =lambda: btn_click(9)).grid(row =1, column =2,
padx =1, pady =1)
multiply = Button(btns_frame, text =“*”, fg =“black”, width
=10, height =3, bd =0, bg =“#eee”, cursor =“hand2”,
command =lambda: btn_click(“*”)).grid(row =1, column =3,
padx =1, pady =1)
a treia linie
four = Button(btns_frame, text =“4”, fg =“black”, width =
10, height =3, bd =0, bg =“#fff”, cursor =“hand2”,
command =lambda: btn_click(4)).grid(row =2, column =0,
padx =1, pady =1)
cinci = Buton(btns_frame, text =“5”, fg =“negru”, width =10,
height =3, bd =0, bg =“#fff”, cursor =“hand2”, command =
lambda: btn_click(5)).grid(row =2, column =1, padx =1,
pady =1)
text
height =3, bd =0, bg =“#fff”, cursor =“hand2”, command =
lambda: btn_click(6)).grid(row =2, column =2, padx =1,
pady =1)
minus = Button(btns_frame, text =“-”, fg =“black”, width =
10, height =3, bd =0, bg =“#eee”, cursor =“hand2”,
command =lambda: btn_click(“-”)).grid(row =2, column =3,
padx =1, pady =1)
a patra linie
unul = Buton(btns_frame, text ="1", fg ="negru", width =10,
height =3, bd =0, bg =“#fff”, cursor =“hand2”, command =
lambda: btn_click(1)).grid(row =3, column =0, padx =1,
pady =1)
două = Buton(btns_frame, text ="2", fg ="negru", width =10,
height =3, bd =0, bg =“#fff”, cursor =“hand2”, command =
lambda: btn_click(2)).grid(row =3, column =1, padx =1,
pady = 1)
text
10, height =3, bd =0, bg =“#fff”, cursor =“hand2”,
comandă = lambda: btn_click(3)).grid(linie = 3, coloană = 2,
padx =1, pady =1)
plus = Buton(btns_frame, text = "+", fg = "negru", width =
10, height =3, bd =0, bg =“#eee”, cursor =“hand2”,
command =lambda: btn_click(“+”)).grid(row =3, column =
3, padx =1, pady =1)
al patrulea rând
întoarce
txt_edit.delete(1.0, [Link])
cu open(filepath, "r") ca input_file:
text = input_file.read()
txt_edit.insert([Link], text)
[Link](f"Aplicaț ie Editor Text -{filepath}")
Explicaț ie:
Linile de la 3 la 5 folosescdialog de deschidere fiș ier
din modulul [Link] pentru a afiș a un fiș ier deschis
dialog ș i stocaț i calea fiș ierului selectat în tofilepath.
Linile 6 ș i 7 verifică dacă utilizatorul închide
cutia de dialog sau face clic pe butonul Anulare. Dacă da,
atunci calea va fi None, iar funcț ia
se va întoarce fără a executa niciunul dintre codurile pentru a citi
fiș ierul ș i setează textul lui txt_edit.
Linia 8 ș terge conț inutul curent altxt_edit_using
.ș terge().
returnaț i
with open(filepath, "w") as output_file:
text = txt_edit.get(1.0, [Link])
output_file.write(text)
[Link](f”Aplicaț ie de Editare a Textului -{filepath}”)
Explanation:
Liniile 3 până la 6 folosesccaseta de dialog pentru a salva un fiș ier cu numele
locaț ia de salvare dorită din partea utilizatorului. Locaț ia selectată
calea fiș ierului este stocată în variabila thefilepath.
Linile 7 ș i 8 verifică dacă utilizatorul închide
caseta de dialog sau face clic pe butonul Anulare. Dacă da,
atunci calea fiș ierului va fi None, iar funcț ia va returna
fără a executa niciunul dintre coduri pentru a salva textul în
un fiș ier.
Linia 9 creează un nou fiș ier la calea de fiș ier selectată.
Linia 10 extrage textul dintxt_editwith.get()
metoda ș i o atribuie variabilei text.
Linia 11 scrietextul în fiș ierul de ieș ire.
Linia 12 actualizează titlul feroneriei astfel încât
noua cale a fiș ierului este afiș ată în titlul ferestrei.
returnează
txt_edit.sterge(1.0, [Link])
cu deschiderea(filepath, "r") ca input_file:
text = input_file.read()
txt_edit.insert([Link], text)
[Link](f"Aplicaț ie de Editare Text -{filepath}")
defsave_file():
Salvează fiș ierul curent ca un fiș ier nou.
filepath = asksaveasfilename(
defaultextension=“txt”,
filetypes=[(“Text Files”,“*.txt”), (“All Files”,“*.*”)],
)
dacă nu există calea fiș ierului:
întoarce
cu open(filepath, "w") ca output_file:
text = txt_edit.get(1.0, [Link])
output_file.write(text)
[Link](f"Aplicaț ie de Editare Text -{filepath}")
fereastra = [Link]()
[Link]("Aplicaț ie Editor Text")
[Link](0, dimensiune_minimă=800, greutate=1)
[Link](1, dimensiune_minimă=800, greutate=1)
txt_edit = [Link](window)
fr_buttons = [Link](window, relief=[Link], bd=2)
btn_open = [Link](fr_buttons, text=“Open”,
command=open_file)
btn_save = [Link](fr_buttons, text=“Save As…”,
command=save_file)
btn_open.grid(row=0, column=0, sticky="ew", padx=5,
pady=5)
btn_save.grid(row=1, column=0, sticky="ew", padx=5)
fr_buttons.grid(row=0, column=0, sticky=“ns”)
txt_edit.grid(row=0, column=1, sticky="nsew")
[Link]()
După cum puteț i vedea în ieș ire, avem un editor de text de bază
aplicaț ie în care putem scrie ceva ș i apoi salva
textul într-un nou fiș ier sau foloseș te butonul Deschidere pentru a deschide un fiș ier în
Tkinter
V-am spus deja în titlul acestei pagini că suntem
o să folosesc biblioteca Tkinter, care este o bibliotecă standard pentru
Crearea GUI. Biblioteca Tkinter este cea mai populară ș i foarte
uș or de utilizat ș i vine cu multe widgeturi (aceste widgeturi
ajutor în crearea de aplicaț ii GUI cu aspect plăcut).
De asemenea, Tkinter este un modul foarte uș or ș i este util în
crearea de aplicaț ii multiplatformă (deci acelaș i cod poate
lucrează uș or pe Windows, macOS ș i Linux
To use all the functions of Tkinter you need to import it in
codul tău ș i comanda pentru acelaș i lucru este:
de la tkinter import*
2. Modul Pygame
Pygame este un modul Python care lucrează cu computere
biblioteci grafice ș i sonore ș i este conceput cu puterea de
jucându-se cu diferite formate multimedia, cum ar fi audio, video,
etc. În timp ce creăm aplicaț ia noastră Music Player, vom fi
utilizând modulul [Link] al Pygame pentru a oferi diferite
funcț ionalitate pentru aplicaț ia noastră de redare muzicală care este de obicei
legat de manipularea pieselor muzicale.
Comanda folosită pentru a instala modulul thepygame este:
3. Modul OS
Nu este nevoie să instalaț i acest modul în mod explicit, deoarece vine
cu biblioteca standard a Python. Acest modul furnizează
funcț ii diferite pentru interacț iunea cu sistemul de operare.
În acest tutorial, vom folosi modulul OS
pentru a obț ine lista de melodii din specificat
director ș i să-l facă disponibil pentru player-ul de muzică
aplicaț ie.
Pentru a folosi acest modul în codul tău, trebuie să-l imporț i ș i
comanda pentru aceea este următoarea:
importaOS
Clasa MusicPlayer
Aici avem constructorul ș i celelalte funcț ii definite
în clasa MusicPlayer.
1._init_Constructor
Cu ajutorul acestui constructor, vom seta titlul pentru
fereastra ș i geometria pentru fereastră. Vom iniț ia
pygame ș i pygame mixer ș i apoi declară pista
variabilă ș i variabilă de stare.
songtrack =
Eticheta(trackframe,textvariable=[Link],width=20,font=
("timpi noi
roman”,24,“bold”),bg=“Portocaliu”,fg=“aur”).grid(row=0,colu
mn=0,padx=10,pady=5
Introducerea etichetei de stare
trackstatus =
Eticheta(cadru_traseu,textvariabil=[Link],font=("times new
roman”,24,“îndrăzneț ”),bg=“portocalie”,fg=“aurie”).grid(row=0,colum
n=1,padx=10,pady=5)
Crearea cadrului pentru buton
buttonframe = LabelFrame([Link],text=“Control
Panou", font=("times new
romană
VE)
[Link]ă(x=0,y=100, lăț ime=600, înălț ime=100)
# Inserarea Butonului de Redare
playbtn =
Buton(butoncadru,text="REDĂCÂNTECUL",comandă=de_sin([Link]
ong,width=10,height=1,font=(“times new
roman",16,"bold"),fg="navyblue",bg="pink").grid(row=0,col
umn=0,padx=10,pady=5
Inserarea butonului de pauză
playbtn =
Buton(butoncadru,text=“PUNE PE PAUZĂ”,comandă=[Link],
lăț ime=8, înălț ime=1, font=(“times new
roman”,16,“bold”),fg=“navyblue”,bg=“pink”).grid(row=0,col
umn=1,padx=10,pady=5)
Inserarea butonului de reluare
playbtn =
Button(buttonframe,text=“UNPAUSE”,command=[Link]
esong,lăț ime=10,înălț ime=1,font=("times new
roman",16,"bold"),fg=„navyblue”,bg=„pink”).grid(row=0,col
umn=2,padx=10,pady=5)
Inserarea butonului de oprire
playbtn =
Button(buttonframe,text=“STOPSONG”,command=[Link]
ong,lăț ime=10,înălț ime=1,tipar=("times new
roman",16,"bold"),fg="navyblue",bg="pink").grid(row=0,col
umn=3,padx=10,pady=5
# Crearea Cadrelor de Playlist
songsframe = LabelFrame([Link],text=“Song
Playlist
roman",15,"bold"),bg="gri",fg="alb",bd=5,relief=GROO
VE)
[Link](x=600,y=0,width=400,height=200)
Inserarea barei de derulare
scrol_y = BaraDeDerulare(songsframe, orientare=VERTICAL)
[Link]("CĂTRE/DIRECTOR")
# Obț inerea melodiilor
songtracks = [Link]()
Introducerea Melodiilor în Playlist
pentru urmărit piese de muzică:
[Link](END, track)
În codul de mai sus, schimbaț i PATH/OF/DIRECTORY cu
o cale adecvată unde sunt stocate fiș ierele melodiei.
Funcț ia playsong()
Acum vom defini funcț ia Reda Cântecul ș i codul este:
defplaysong(self):
Afiș area titlului melodiei selectate
[Link]([Link](ACTIVE))
Afisarea stării
[Link]("-Jucând")
Încărcarea melodiei selectate
[Link]([Link](ACTIVE))
Redarea melodiei selectate
[Link]()
3. Funcț ia thestopsong()
Fragmentul de cod pentru a opri melodia:
defstopsong(this):
Afiș area stării
[Link](„-Oprit”)
Cântec oprit
[Link]ș te()
4. Funcț ia thepausesong()
Codul pentru a pune melodie pe pauză:
defpausesong(self):
Afiș area stării
[Link](“-Pausat”)
Piesa Pauzată
[Link]ă()
5. Funcț ia Theunpausesong()
Fragmentul de cod pentru a reporni melodia:
defunpausesong(self):
Acesta va afiș a starea
[Link]("-Jucând")
Redarea melodiei
[Link]()
6. Bucla Ferestrei Rădăcină
The command will be:
[Link]()
Acum aici sunt câteva capturi de ecran ale aplicaț iei noastre:
Dosarul numit studytonight unde se află fiș ierul de cod ș i dosarul
pentru melodii este plasat astfel:
Aș adar, aceasta a fost totul despre construirea aplicaț iei de redare muzicală
folosind Tkinter. Sper că vă place această aplicaț ie. Vă rog să împărtăș iț i
mai multe idei cu noi pentru aplicaț ii desktop bazate pe Tkinter ș i
cu siguranț ă vom adăuga mai multe proiecte Tkinter la Tkinter-ul nostru
tutorial.
PARTEA 28: Distrugător de Cărămizi
Prerequisites:
Pentru a înț elege codul pentru a construi jocul brick breaker în
Python, ar trebui să cunoș ti următoarele concepte:
1. Obiect de joc
2. Minge
3. Rame
Cărămidă
5. Joc
Toate aceste clase vor avea metode pentru a efectua diverse
gestionarea ș i operaț iunile asupra elementului de joc respectiv.
Hai să vedem codul pentru fiecare clasă.
Clasa GameObject
Această clasă este clasa părinte a tuturor celorlalte clase, care
înseamnă că toate celelalte clase vor moș teni această clasă.
Codul pentru această clasă este următorul:
class ObiectDeJoc(object):
def__init__(self, canvas, item):
[Link] = canvas
[Link] = item
def obtine_pozitia(self):
[Link]([Link])
defmove(self, x, y):
[Link]([Link], x, y)
defș terge(self):
[Link]([Link])
Această clasă are funcț ii pentru a gestiona ciclul de viaț ă de bază al
obiecte diferite care formează jocul.
Clasa Minge
Iată codul pentru clasa Minge:
clasaMinge(JocObiect):
def__init__(self, canvas, x, y):
[Link] =10
[Link] = [1, -1]
# creș te valoarea de mai jos pentru a creș te viteza mingii
[Link] =5
item = canvas.create_oval([Link], [Link],
x+[Link], y+[Link],
umple='alb')
super(Ball, self).__init__(canvas, item)
defupdate(self):
coords = self.get_position()
latime = [Link].winfo_width()
dacă coordonatele[0] <= 0 sau coordonatele[2] >= lăț ime:
[Link][0] *= -1
dacă coords[1] <= 0:
[Link][1] *= -1
x = [Link][0] * [Link]
y = [Link]ț ia[1] * [Link]ă
[Link](x, y)
defcolide(self, obiecte_de_joacă):
coords = self.get_position()
x = (coords[0] + coords[2]) * 0.5
dacă len(game_objects) >1:
[Link][1] *= -1
eliflen(game_objects) ==1:
game_object = game_objects[0]
coords = game_object.get_position()
dacă x > coords[2]:
[Link][0] =1
elifx < coords[0]:
[Link][0] = -1
altfel:
[Link][1] *= -1
forgame_objectingame_objects:
dacă esteinstanț ă(ojiect_de_joc, Cărămidă):
game_object.străpunge()
În clasa Ball, metoda collide() este folosită pentru a gestiona
coliziune ș i este folosit în funcț ia check_collisions() a
Clasa jocului. În timp ce funcț ia update() este pentru a reseta Mingea
obiectul după ce o viaț ă este pierdută ș i jocul începe din nou.
Clasă de canotaj
Iată codul pentru clasa Paddle:
clasaPaddle(GameObject):
def__init__(self, canvas, x, y):
setează forma ș i poziț ia paletei
[Link] =80
[Link] =10
[Link] =None
item = canvas.create_rectangle(x - [Link] / 2,
y - [Link] /2,
x + [Link] /2,
y + [Link] / 2,
fill='#FFB643')
super(Paddle, self).__init__(canvas, item)
defset_ball(self, minge):
[Link] = ball
defmove(self, offset):
coords = self.get_position()
latime = [Link].winfo_width()
dacă ifcoords[0] + offset >=0 ș i coords[2] + offset <=
width:
super(Paddle, self).move(offset, 0)
dacă [Link] nu este None:
[Link](offset,0)
În afară de constructor, metoda themove() din această clasă este
important deoarece permite miș carea pentru paletă.
Clasa de Cărămidă
Iată codul pentru clasa Brick:
clasăCărămidă(GameObject):
COLORS = {1:‘#4535AA’,2:‘#ED639E’,3:‘#8FE1A2’}
def__init__(self, canvas, x, y, hits):
[Link] =75
[Link] =20
[Link] = hits
color = [Link][hits]
element = canvas.create_rectangle(x - [Link] /2,
y - [Link] /2,
x + [Link] /2,
y + [Link] /2,
fill=color, tags=‘brick’)
super(Brick, self).__init__(canvas, item)
defhit(self):
[Link] -=1
[Link] ==0:
[Link]()
altfel:
[Link]([Link],
fill=[Link][[Link]]
Începem definiț ia clasei prin stabilirea culorilor pentru
diferite tipuri de cărămizi. Apoi, în constructor, dimensiunea ș i
poziț ia cărămizilor este definită. Ș i apoi există
funcț ia thehit() care gestionează dacă cărămida va dispărea
sau va suporta lovitura ș i se va schimba de culoare pentru a primi următoarea lovitură.
Game Class
Aceasta este clasa principală care controlează totul. Aici este
code:
clasa Joc([Link]):
def__init__(self, master):
super(Game, self).__init__(master)
[Link] =3
[Link] =610
[Link] =400
[Link] = [Link](self, bg=‘#D6D1F5’,
latime=[Link],
înălț imea=[Link],
[Link]()
[Link]()
[Link] = {}
[Link] =None
[Link] = Paddle([Link], [Link]/2,326)
[Link][[Link]] = [Link]
# adăugarea cărămizilor cu capacităț i de lovire diferite - 3, 2 ș i 1
pentru x în interval(5, [Link] - 5, 75):
self.add_brick(x +37.5,50,3)
[Link]ă_cărămidă(x +37.5,70,2)
self.add_brick(x +37.5,90,1)
[Link] =None
self.setup_game()
[Link].set_focus()
[Link]('<Stânga>',
lambda_: [Link](-10))
[Link]('<Right>',
lambda_: [Link](10)
definiț i jocul
self.adauga_minge()
self.update_lives_text()
[Link] = self.draw_text(300,200,
Apăsaț i Space pentru a începe
[Link]('<space>',lambda_:
self.start_game())
adauga_minge(self):
[Link] nu este None:
[Link]()
paddle_coords = [Link].get_position()
x = (coord_paddle[0] + coord_paddle[2]) * 0.5
[Link] = Ball([Link], x,310)
[Link].set_ball([Link])
def adauga_cărămidă(self, x, y, lovituri):
[Link].create_text(x, y, text=text,
font=font)
def actualizează_texte_vieț i(self):
Vieț i: %s
[Link]:
[Link] = self.draw_text(50,20, text,15)
altfel:
[Link]([Link], text=text)
defstart_game(self):
[Link]ă(‘<spaț iu>’)
[Link]([Link])
[Link] =None
self.game_loop()
defgame_loop(self):
self.verifica_coliziunile()
num_bricks =len([Link].find_withtag(‘brick’))
ifnum_bricks ==0:
[Link] =None
îț i câș tigi! Eș ti Spargătorul
Cărămizi.’)
elif [Link].get_position()[3] >= [Link]:
[Link] =None
[Link]ț i -= 1
dacă [Link] < 0:
îț i pierzi! Joc încheiat!
altfel:
[Link](1000, self.setup_game)
altfel:
[Link]()
[Link](50, self.game_loop)
defcheck_coliziunile(self):
ball_coords = [Link].get_position()
items = [Link].find_overlapping(*ball_coords)
obiecte = [[Link][x] pentru x în items dacă x în [Link]]
[Link]ă(obiecte)
În această clasă, avem următoarele:
[Link][0] *= -1
dacă coords[1] <= 0:
[Link]ț ia[1] *= -1
x = [Link]ț ia[0] * [Link]ă
y = [Link]ț ia[1] * [Link]ă
[Link](x, y)
defcoliziune(self, obiecte_de_joc):
coords = self.get_position()
x = (coords[0] + coords[2]) * 0.5
dacă len(game_objects) > 1:
[Link][1] *= -1
eliflen(game_objects) ==1:
game_object = game_objects[0]
coords = game_object.get_position()
dacă fx > coords[2]:
[Link][0] =1
elifx < coords[0]:
[Link][0] = -1
altfel:
[Link][1] *= -1
forgame_objectingame_objects:
dacă esteinstanț ă(game_object, Cărămidă):
game_object.hit()
clasaPaddle(GameObject):
def__init__(self, canvas, x, y):
[Link] =80
[Link] =10
[Link] = None
item = canvas.create_rectangle(x - [Link] /2,
y - [Link] / 2,
x + [Link] /2,
y + [Link] /2,
fill=‘#FFB643’
super(Paddle, self).__init__(canvas, item)
defset_ball(self, minge):
[Link] = minge
defmove(self, offset):
coords = self.get_position()
latime = [Link].winfo_width()
ifcoords[0] + offset >=0si coords[2] + offset <=
lăț ime:
super(Paddle, self).move(offset, 0)
[Link] notNone:
[Link](offset, 0)
clasă Brick(GameObject):
COLORS = {1:‘#4535AA’,2:‘#ED639E’,3:‘#8FE1A2’}
def__init__(self, canvas, x, y, hits):
[Link] =75
[Link] =20
[Link] = hits
color = [Link][hits]
item = canvas.create_rectangle(x - [Link] /2,
y - [Link] /2,
x + [Link] /2,
y + [Link] /2,
umple=color, etichete='cărămidă')
[Link]('<space>',lambda_:
self.start_game())
defadaugă_minge(self):
[Link] notNone:
[Link]()
paddle_coords = [Link].get_position()
x = (coord_paddle[0] + coord_paddle[2]) * 0.5
[Link] = Ball([Link], x,310)
[Link].set_ball([Link])
defadaugă_brichetă(self, x, y, lovituri):
[Link].create_text(x, y, text=text,
font=font)
defactualizati_textul_vietilor(self):
Vieț i: %s
[Link]:
[Link] = self.draw_text(50,20, text,15)
altfel:
[Link]([Link], text=text)
defineste_joc(self):
[Link]ă(‘<space>’)
[Link]([Link])
[Link] =None
self.game_loop()
defbucla_joc(self):
self.verifica_coliziunile()
num_bricks =len([Link].find_withtag(‘brick’))
ifnum_bricks ==0:
[Link] = None
Îț i câș tigi! Eș ti Distrugătorul
Cărămizi.
[Link].get_position()[3] >= [Link]:
[Link] =None
[Link] -=1
dacă [Link] < 0:
Îț i pierzi! Jocul s-a terminat!
altfel:
[Link](1000, self.setup_game)
altfel:
[Link]()
[Link](50, self.game_loop)
defcheck_coliziuni(self):
ball_coords = [Link].get_position()
items = [Link].find_overlapping(*ball_coords)
obiecte = [[Link][x] pentru x in items dacă x în [Link]]
[Link]ã(obiecte)
if__name__ ==‘__main__’:
root = [Link]()
[Link](‘Break those Bricks!’)
game = Game(root)
[Link]()
Pentru a rula jocul, trebuie să aveț i modulul Tkinter instalat.
Salvează codul dat mai sus într-un fiș ier cu un nume, haideț i să
[Link]. Apoi, pentru a rula codul, executa
comanda următoare:
python [Link]
Interfaț a de utilizare a jocului Brick Breaker
Iată câteva instantanee despre cum arată jocul.
Când jucătorul câș tigă jocul:
Când jucătorul pierde jocul:
Ș i cu asta, acest tutorial se încheie. Sper că jocul funcț ionează bine pentru
îț i recomandăm să editezi ș i să personalizezi codul pentru
îmbunătăț eș te jocul. Încearcă să adaugi mai multe caracteristici jocului.
PART 29: Calculator
Aplicaț ie folosind Python
Limbă
Calculatorul este o aplicaț ie pe care o folosim cu toț ii în viaț a de zi cu zi.
astăzi. Dacă încerci să te murdăreș ti cu
programarea în python, Calculatorul este un proces simplu ș i
un proiect util în acelaș i timp. Astăzi, vom dezvolta
Un calculator Python folosind Tkinter, uș or de urmărit
instrucț iuni.
Iată cum va apărea calculatorul nostru, care este creat folosind
câmpul de introducere, butoanele ș i logica definite în funcț ii pentru
scopuri de calcul. De exemplu, dacă doriț i să adăugaț i două
numere, trebuie să existe o logică pentru adunare, similar pentru
scădere, înmulț ire ș i aș a mai departe, am creat
funcț ii al căror scop este de a efectua aceste operaț ii.
Avem un câmp de introducere unde va fi afiș ată introducerea utilizatorului
împreună cu rezultatul final al calculelor.
Butonul sunt numerotate 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, *, /, =
ș i C. (buton de ș tergere)
Ce este un calculator?
Pentru cei care nu sunt familiarizaț i, un calculator este o aplicaț ie de computer
care imită comportamentul oricărui calculator portabil folosit pentru
finalizarea calculelor matematice. Este o activitate foarte simplă
un element pe care îl folosim zilnic. O aplicaț ie de calculator este
acum disponibil pe toate telefoanele mobile.
defbtn_click(item):
expresiune globală
expression = expression + str(item)
input_text.set(expresie)
# ‘bt_clear’ funcț ie :Aceasta este folosită pentru a ș terge
câmpul de input
defbt_clear():
expresieglobală
expression =””
input_text.set(””)
# ‘bt_equal’:This method calculates the expression
# prezent în câmpul de input
defbt_equal():
expresie globală
result =str(eval(expression))# ‘eval’:This function is used
pentru a evalua expresia de ș ir direct
input_text.set(result)
expression =””
expression =””
'StringVar()': Se foloseș te pentru a obț ine instanț a câmpului de introducere
input_text = StringVar()
Să creăm un cadru pentru câmpul de intrare
input_frame = Frame(win, lăț ime=312, înălț ime=50, bd=0,
highlightbackground=“black”, highlightcolor=“black”,
highlightthickness=2)
input_frame.pack(latura= SUS)
Să creăm un câmp de input în interiorul 'Frame'-ului
input_field = Entry(input_frame, font=('arial',18,'bold'),
textvariable=input_text, width=50, bg=“#eee”, bd=0,
justify=RIGHT)
input_field.grid(row=0, column=0)
input_field.pack(ipady=10)# 'ipady' este umplutura interna pentru
creș te înălț imea câmpului de introducere
Să creăm un alt 'Cadru' pentru butonul de mai jos
cadru_de_intrare
btns_frame = Frame(win, width=312, height=272.5,
bg=“grey”)
btns_frame.pune()
prima linie
clear = Button(btns_frame, text =“C”, fg =“black”, width =
32, înălț ime =3, bd =0, bg ="#eee", cursor ="hand2"
comandă =lambda: bt_clear()).grid(rând =0, coloană =0,
columnspan =3, padx =1, pady =1)
divide = Button(btns_frame, text =“/”, fg =“black”, width =
10, height =3, bd =0, bg =“#eee”, cursor =“hand2”,
command =lambda: btn_click(“/”)).grid(row =0, column =3,
padx =1, pady =1)
rândul doi
seven = Button(btns_frame, text =“7”, fg =“black”, width =
10, height =3, bd =0, bg =“#fff”, cursor =“hand2”,
comandă =lambda: btn_click(7)).grid(row =1, column =0,
padx =1, pady =1)
opt = Buton(btns_frame, text =“8”, fg =“negru”, width =
10, height =3, bd =0, bg =“#fff”, cursor =“hand2”,
comandă =lambda: btn_click(8)).grid(rând =1, coloană =1,
padx =1, pady =1
nine = Button(btns_frame, text =“9”, fg =“black”, width =
10, height =3, bd =0, bg =“#fff”, cursor =“hand2”,
command =lambda: btn_click(9)).grid(row =1, column =2,
padx =1, pady =1)
multiply = Button(btns_frame, text =“*”, fg =“black”, width
=10, height =3, bd =0, bg =“#eee”, cursor =“hand2”,
comandă = lambda: btn_click("*")).grid(row = 1, column = 3,
padx =1, pady =1)
rândul trei
four = Button(btns_frame, text =“4”, fg =“black”, width =
10, height =3, bd =0, bg =“#fff”, cursor =“hand2”,
comandă =lambda: btn_click(4)).grid(linie =2, coloană =0,
padx =1, pady =1)
five = Button(btns_frame, text =“5”, fg =“black”, width =10,
height =3, bd =0, bg =“#fff”, cursor =“hand2”, command =
lambda: btn_click(5)).grid(row =2, column =1, padx =1,
pady =1)
six = Button(btns_frame, text =“6”, fg =“black”, width =10,
height =3, bd =0, bg =“#fff”, cursor =“hand2”, command =
lambda: btn_click(6)).grid(row =2, column =2, padx =1,
pady = 1)
minus = Button(btns_frame, text =“-”, fg =“black”, width =
10, height =3, bd =0, bg =“#eee”, cursor =“hand2”,
command =lambda: btn_click(“-”)).grid(row =2, column =3,
padx =1, pady =1)
a patra linie
one = Button(btns_frame, text =“1”, fg =“black”, width =10,
height =3, bd =0, bg =“#fff”, cursor =“hand2”, command =
lambda: btn_click(1)).grid(row =3, column =0, padx =1,
pady =1)
doi = Buton(btns_frame, text ="2", fg ="negru", width =10,
height =3, bd =0, bg =“#fff”, cursor =“hand2”, command =
lambda: btn_click(2)).grid(row =3, column =1, padx =1,
pady =1)
trei = Button(btns_frame, text = “3”, fg = “negru”, width =
10, height =3, bd =0, bg =“#fff”, cursor =“hand2”,
comandă = lambda: btn_click(3)). grid(row = 3, coloană = 2,
padx =1, pady =1)
plus = Buton(btns_frame, text = "+", fg = "negru", width =
10, height =3, bd =0, bg =“#eee”, cursor =“hand2”,
comandă =lambda: btn_click("+")).grid(row =3, column =
3, padx =1, pady =1)
a patra linie
zero = Button(btns_frame, text =“0”, fg =“black”, width =
21, height =3, bd =0, bg =“#fff”, cursor =“hand2”,
comandă = lambda: btn_click(0)).grid(linie = 4, coloană = 0,
columnspan =2, padx =1, pady =1
point = Button(btns_frame, text =“.”, fg =“black”, width =
10, height =3, bd =0, bg =“#eee”, cursor =“hand2”,
comandă = lambda: btn_click(".")).grilă(rând = 4, coloană = 2,
padx =1, pady =1)
equals = Button(btns_frame, text =“=”, fg =“black”, width =
10, height =3, bd =0, bg =“#eee”, cursor =“hand2”,
command =lambda: bt_equal()).grid(row =4, column =3,
padx =1, pady =1)
[Link]()
Tkinter are o serie de metode care îl fac simplu ș i
rapid de a crea un calculator de bază cu doar câteva linii de cod.
Am definit următoarele funcț ii în codul nostru, în plus
la widget-urile Tkinter:
Funcț ia btn click(): Această funcț ie adaugă diverse
buton numeric pentru operaț ie prin gestionarea butonului
clicuri.
Metoda bt clear() este folosită pentru a gestiona ș tergerea
acț iune în aplicaț ia Calculator, care curăț ă
input anterior.
Butonul de egalitate este gestionat de funcț ia bt equal(), care
execută acț iunea ș i afiș ează rezultatul.
Now we’ll show you a screenshot of the aforementioned
rezultatul codului. Da, poț i să-l foloseș ti pe maș ina ta pentru a avea o
cunoș tinț e mai bune despre aplicaț ia Calculator folosind Tkinter:
Output:
Summary:
În acest articol, am folosit Tkinter ș i mai multe widget-uri Tkinter pentru
create a simpleCalculatorapplication, which we covered in
Tutorialul nostru Tkinter.
PARTEA 30: Ceas deș teptător
Folosind limbajul Python
Ceasul de alarmă folosind Python este un proiect construit în Python
limbaj de programare, Scopul acestui PythonAlarm
ClockTutorial este să creeze o interfaț ă grafică de utilizator pentru un ceas de alarmă în Python.
Un script Python pentru ceas de alarmă include biblioteci esenț iale cum ar fi
asDateTime ș i Tkinter, care ne ajută în construirea
proiecte care utilizează data ș i ora curentă. De asemenea, acestea oferă o
interfaț ă utilizator pentru a seta alarma conform cerinț elor într-un 24-
format de oră. Pentru a începe dezvoltarea acestui proiect principal, Alarmă
Ceas folosind Python, asiguraț i-vă că aveț i Pycharm
IDE instalat pe computerul tău.
importwinsound
În timp ce codul următor importă fiecare modul care este
apelat în rularea aplicaț iei.
# Set Alarm
set_alarm =f”{[Link]()}:{[Link]()}:
{[Link]()}
Aș teptaț i o secundă
[Link](1)
Obț ine ora curentă
current_time =
[Link]().strftime("%H:%M:%S")
Verificaț i dacă alarma setată este egală cu timpul curent sau nu
dacă_timpul_curent == setează_alarmă:
Timpul să ne trezim
Redarea sunetului
[Link]("[Link]",winsound.SND_A
SYNC)
În acest modul se efectuează configurarea alarmei.
Setează Alarmă
10,comandă = timp_actual).locaț ie(x = 110,y = 70)
[Link]()
Executarea feronerie.
Acest modul este designul sau interfaț a grafică a utilizatorului sau
(GUI) al acestui proiect.
importaț i timpul
importwinsound
de la threading importa *
# Creează Obiect
root = Tk()
Setaț i geometria
[Link]("400x200")
# Folosiț i Threading
defThreading():
t1=Thread(target=alarm)
[Link]()
defalarm():
Buclă Infinită
whileTrue:
# Set Alarm
set_alarm_time =f”{[Link]()}:{[Link]()}:
{[Link]()}
Aș teaptă un secund
[Link](1)
Obț ine timpul curent
current_time =
[Link]().strftime("%H:%M:%S")
afisează(timpul_curent, setează_timpul_alarmă)
# Verificaț i dacă alarma setată este egală cu ora curentă sau nu
dacă_timpul_curent == setează_timpul_alarmă:
Timpul să te trezeș ti
Redare sunet
[Link]("[Link]",winsound.SND_A
SYNC
# Adăugaț i etichete, ramă, buton, meniuri de opț iuni
Ceas de-alarmă
bold),fg="red").pack(pady=10)
Label(root,text="Setează timpul",font=("Helvetica 15 bold")).pack()
frame = Cadru(root)
[Link]()
hour = StringVar(root)
hours = (‘00’,‘01’,‘02’,‘03’,‘04’,‘05’,‘06’,‘07’,
‘08’,‘09’,‘10’,‘11’,‘12’,‘13’,‘14’,‘15’,
‘16’,‘17’,‘18’,‘19’,‘20’,‘21’,‘22’,‘23’,‘24’
)
[Link](ore[0])
hrs = MenuOpț iuni(frame, oră, *ore)
hrs.împachetează(lateral=STÂNGA)
minute = StringVar(root)
minutes = (‘00’,‘01’,‘02’,‘03’,‘04’,‘05’,‘06’,‘07’,
["08","09","10","11","12","13","14","15"]
‘16’,‘17’,‘18’,‘19’,‘20’,‘21’,‘22’,‘23’,
‘24’,‘25’,‘26’,‘27’,‘28’,‘29’,‘30’,‘31’,
‘32’,‘33’,‘34’,‘35’,‘36’,‘37’,‘38’,‘39’,
‘40’,‘41’,‘42’,‘43’,‘44’,‘45’,‘46’,‘47’,
‘48’,‘49’,‘50’,‘51’,‘52’,‘53’,‘54’,‘55’,
‘56’,‘57’,‘58’,‘59’,‘60’)
[Link](minutes[0])
mins = Opț iuneMeniu(frame, minut, *minute)
[Link](side=STÂNGA)
second = StringVar(root)
seconds = (‘00’,‘01’,‘02’,‘03’,‘04’,‘05’,‘06’,‘07’,
‘08’,‘09’,‘10’,‘11’,‘12’,‘13’,‘14’,‘15’,
‘16’,‘17’,‘18’,‘19’,‘20’,‘21’,‘22’,‘23’,
‘24’,‘25’,‘26’,‘27’,‘28’,‘29’,‘30’,‘31’,
‘32’,‘33’,‘34’,‘35’,‘36’,‘37’,‘38’,‘39’,
‘40’,‘41’,‘42’,‘43’,‘44’,‘45’,‘46’,‘47’,
‘48’,‘49’,‘50’,‘51’,‘52’,‘53’,‘54’,‘55’,
‘56’,‘57’,‘58’,‘59’,‘60’)
[Link](seconds[0])
secs = OptionMenu(frame, second, *seconds)
[Link]ă(lateral=STÂNGA)
Buton(root,text=„Setează Alarmă”,font=(„Helvetica
15”),command=Threading).pack(pady=20)
# Executa Tkinter
[Link]()
Output:
Concluzie
Scopul acestui proiect, Ceas deș teptător folosind Python, este să
creaț i un ceas cu alarmă folosind Python. Python conț ine câteva
biblioteci esenț iale precum DateTime ș i Tkinter, care ajută
ne în construirea unui proiect utilizând data ș i ora actuală.
De asemenea, oferă o interfaț ă utilizator pentru a seta alarma în funcț ie de
cererea într-un format de 24 de ore.
PARTEA 31: Număr
Joc de ghicit în Python
A number guessing game is a frequent mini-project for
programatorii începători care se ocupă cu generarea de numere aleatorii
ș i declaraț ii condiț ionale cu iteraț ie.
Jocul de ghicit numerele se bazează pe noț iunea jucătorului de a
estimează un număr între intervalul furnizat. Dacă jucătorul
prevesteș te numărul dorit, jucătorul câș tigă; altfel,
jucătorul pierde jocul. Deoarece acest joc are eforturi limitate astfel,
jucătorul trebuie să indice numărul cu
încercările limitate. Altfel, jucătorul va pierde jocul.
În acest tutorial, vom construi un joc de ghicit numere.
Python.
Reguli pentru jocul de ghicit numere
1. Trebuie să introduceț i doar numere întregi valide în cadrul
interval oferit.
[Link] avea la dispoziț ie încercări limitate pentru a estima
număr.
3. Nu poț i ieș i din joc o dată ce a început.
Dacă numărul de intrare este mai mic sau mai mare decât
numărul necesar, jucătorul primeș te mesajul (indiciu) pentru a
mutaț i mai departe în sus sau în jos în interval.
x = [Link](low, high)
n = int(input(“Introduceț i un număr întreg în intervalul dat: “))
while(x !='n'):
dacă(t<(g-1)):
dacă n < x:
Numărul ghicit este prea mic
t = t+1
n = int(input("Introduceț i un număr întreg între valorile date")
range: “))
elif(n > x):
Numărul ghicit este mare
t = t+1
n = int(input("Introduceti un numar intreg intre datele date"))
range: “))
altfel:
Numărul ghicit este corect
print(“Total de estimări efectuate: “, t+1)
pauză
altfel:
A expirat timpul pentru încercări!
pauză
Output:
Total Guesses: 5
comp_choice = t[randint(0,2)]
Importaț i modulul random pentru a utiliza funcț ia randint(). Atribuim
o opț iune de joc pentru computer. este o listă de jocuri posibile
opț iuni. randomint(0,2) va genera aleatoriu un număr de la
intervalul dat de fiecare dată când este apelat. Poate da 0, 1 sau 2
conform codului nostru.
comp_choice va stoca valoarea ca
t[0] = “Rock”
t[1]=“Paper”
t[2]=“Scissor”
2. Ia input de la jucător
player_choice =input(“Chose Rock, Paper, Scissors?”)
Jucătorii vor da un input la alegerea lor
Tip!"
print("Scor")
print("computer câș tigă:",computer_win)
print(“player win:”,player_win)
elif alegerea_jucătorului == "Stâncă":
ifcomp_choice == "Hârtie":
Ai pierdut! computerul a ales
“player chose”, player_choice)
computer_win+=1
print("Scor")
print(„câș tigător computer:”, computer_win)
print(„jucător câș tigă:”,jucător_câș tigă)
altfel:
Felicitări! jucătorul a ales
“computer chose”, comp_choice)
player_win+=1
print("Scor")
afiș ează ("câș tigă computerul:", computer_win)
print("jucător câș tigat:", jucător_câș tigat)
elifplayer_choice == "Hârtie":
ifcomp_choice == "Foarfeca":
Ai pierdut! computerul a ales
“player chose”, player_choice)
computer_win+=1
Tipăriț i(„Punctaj”)
print("computer câș tigă:",computer_win)
print("jucător câș tigat:", jucător_câș tigat)
altfel:
felicitări! jucătorul a ales
“computer chose”, comp_choice)
player_win+=1
Punctaj
print("calculator câș tigă:", calculator_câș tigă)
print("jucător câș tigă:", jucător_câș tigă)
elifplayer_choice == "Foarfeci":
dacăcomp_alegere == "Piatră":
player_choice=1
comp_choice = t[randint(0,2)]
în altă ordine de idei:
pauză
Jucătorul are de ales să continue sau să plece. Alegerea jucătorului
este stocat într-o variabilă ch. Dacă este 'y', atunci player_choice este setat la
1 pentru a continua bucla, în alt caz controlul execută break
ș i iese din buclă.
Output-
Aici am jucat patru runde cu computerul. După
pentru fiecare rundă, scorurile sunt afiș ate pentru jucător ș i computer.
Legătură!
Score
computer win: 0
player win: 0
doriț i să continuaț i (y/n) y
Score
computer win: 1
player win: 0
Legătură!
Scor
computer win: 1
player win: 0
Scor
computer win: 1
player win: 1
Hai să începem.
Trebuie să obț inem două pachete Python vitale pentru aceasta
aplicaț ie în timpul instalării pachetelor Python necesare.
Notă: Dacă foloseș ti Windows, execută aceste două instrucț iuni
la promptul de comandă; dacă folosiț i Linux, tastaț i-le aici
terminalul (pentru preluarea datelor de pe web)
pip install cereri
După ce ai rulat aplicaț ia, acesta este modul în care vei primi
notificare.
A avea aplicaț ia ta să funcț ioneze în fundal este grozav
mod de a economisi timp.
Output:
Concluzie
Acest program este compatibil cu orice sistem de operare,
inclusiv Windows, Linux ș i Mac. Te rog să te simț i liber să întrebi în
the comments area of this post if you desire a simpler desktop
program de notificare.