Python

Koostage PyQt-rakendus näitega

Koostage PyQt-rakendus näitega
PyQt on Pythoni väga kasulik teek, mida kasutatakse graafiliste rakenduste väljatöötamiseks. See kasutab Qt GUI raamistik Pythoni versioon, mis on välja töötatud C ++ keelt kasutades. Rakenduse graafilise kasutajaliidese saab arendada, importides PyQti teeki Pythoni skripti või kasutades PyQti moodulit Qt Designer. Kui te ei soovi rakenduse graafilise kasutajaliidese rakendamiseks koodi kirjutada, on parem installida Qt Designer ja luua selle abil graafiline kasutajaliides. PyQti rakenduse Pythonis loomise viis on selles õpetuses samm-sammult näidatud.

Looge lihtsa PyQt-i rakendus lisamiseks:

Lihtsa PyQt-rakenduse rakendamise sammud kahe numbri summa arvutamiseks on näidatud selles õpetuse jaotises. Siin võetakse numbri väärtused kasutajalt tekstikastide abil pärast skripti käivitamist, seejärel kuvatakse väärtuste summa pärast nupul klõpsamist. Rakenduse kujunduse loomiseks on siin loodud aken vajalike väljadega; järgmisena kasutatakse summa arvutamiseks Pythoni skripti.

Sammud:

Samm 1. Looge PyQt rakenduse objekt

Selle õpetuse PyQt-rakenduse kujundamiseks peate importima Pythoni vajalikud moodulid. Selle rakenduse kujundamiseks on vaja kahte silti, kahte tekstikasti ja nuppu.

QApplication, QMainWindow, QLabel, QTextEdit, ja QPushButton Rakenduse kujundamiseks on vaja mooduleid.

Nende moodulite kasutamiseks lisage skripti algusse järgmised read.

# Impordi vajalikud moodulid
alates PyQt5.QtWidgetid impordivad QApplicationi, QMainWindowi, QLabeli, QTextEditit, QPushButtoni

Rakenduse objekti loomiseks ja sündmuse tsükli käivitamiseks lisage järgmised read. Pärast skripti käivitamist ei ilmu midagi.

# Loo objekti PyQt rakendus
rakendus = QApplication ([])
# Rakenduse käivitamiseks käivitage sündmuse silmus
rakendus.exec ()

2. samm: looge klassi ja akna objekt

Rakenduse akna kujundamiseks selles etapis vajalike objektide lisamiseks looge klass.

Aknaobjektiga klassi loomiseks lisage järgmised read. Siin määratakse akna pealkiri, suurus ja asukoht. Järgmisena kutsutakse meetod show () akna väljundina kuvamiseks.

klassi lisamine (QMainWindow):
def __init __ (ise):
# Helistage vanemkonstruktorile
Super().__selles__()
# Määrake akna pealkiri
ise.setWindowTitle ("PyQt lisamise rakendus")
# Määrake akna laius ja kõrgus
ise.suuruse muutmine (350, 200)
# Liigutage akna asukohta
ise.liikuma (800, 400)
# Kuva aken
ise.näita ()

Enne sündmuse tsükli käivitamist peate looma klassi objekti.

# Loo aknaobjekt
aken = liitmine ()

Pärast skripti käivitamist ilmub järgmine tühi aken.

3. samm: lisage aknasse lisamiseks vajalikud vidinad

Nüüd lisage rakenduse rakendamiseks vajalikud objektid. Kolm objekti QLabel vidin, kaks objekti QTextEdit vidin ja nupuobjekt QPushButton selles etapis luuakse vidin. Kahte esimest sildi objekti kasutatakse abistava teksti esitamiseks enne tekstikaste. QTextEdit Objektide abil võetakse kasutajalt kaks numbriväärtust. QPushButton objekt luuakse sisendarvude summa arvutamiseks järgmise toiminguga loodava sündmuskäitleja funktsiooni abil. Viimast sildi objekti kasutatakse kahe numbri liitmise kuvamiseks. Siin, setGeometry () Funktsiooni kutsutakse igal objektil määrama objekti asukoht aknas.

# Loo esimesele numbrile silt
ise.lbl1 = QLabel ('Number 1', ise)
ise.lbl1.setGeometry (80, 20, 80, 50)
# Loo esimese numbri jaoks tekstikast
ise.textbox1 = QTextEdit (ise)
ise.tekstikast1.setGeometry (80, 60, 70, 30)
# Loo teisele numbrile silt
ise.lbl2 = QLabel ('Number 2', ise)
ise.lbl2.setGeometry (200, 20, 80, 50)
# Loo teise numbri jaoks tekstikast
ise.textbox2 = QTextEdit (ise)
ise.tekstikast2.setGeometry (200, 60, 70, 30)
# Loo nupu summa arvutamiseks
ise.esita = QPushButton ('Arvuta summa', ise)
ise.Esita.setGeometry (80, 100, 190, 30)
# Loo silt summeerimise tulemuse kuvamiseks
ise.lblResult = QLabel (", ise)
ise.lblTulemus.setGeometry (80, 130, 200, 50)

Pärast skripti käivitamist ilmub järgmine väljund. Selles etapis pole loodud sündmuste käitleja funktsiooni, mida kasutatakse arvude summa arvutamiseks. Seega, kui kasutaja nuppu klõpsab, ei juhtu midagi.

4. samm: looge ja helistage funktsioon nupu klõpsamise sündmuse haldamiseks

Looge meetod nimega onClicked () järgmiste joontega lisamine klass nupu klõpsamise sündmuse käsitsemiseks. Tekstikastide väärtused teisendatakse täisarvudeks, kasutades int () funktsioon ja salvestatakse num1 ja num2 muutujad. Järgmisena summa num1 ja num2 on salvestatud tulemus muutuv. Väärtused num1, num2, ja tulemus muutujad teisendatakse stringiväärtusteks, kasutades str () funktsioon enne väärtuste salvestamist väljund muutuv. Kolmandat sildi objekti kasutatakse faili sisu kuvamiseks väljund muutuv.

def onClicked (ise):
num1 = int (ise.tekstikast1.toPlainText ())
num2 = int (ise.tekstikast2.toPlainText ())
tulemus = num1 + num2
väljund = "

"+ Str (num1) +" ja "+ str (num2) +" summa on "+ str (tulemus) + '

"
ise.lblTulemus.setText (väljund)

Lisage klassi järgmised read pärast nupuobjekti, et helistada meetodile onClicked (), kui nupul klõpsatakse.

# Kõnefunktsioon, kui nupul klõpsatakse
ise.Esita.klõpsatud.ühendama (ise.onClicked)

Pärast skripti käivitamist, kui kasutaja on sisestanud 12 ja 18 tekstikastides ja klõpsanud nuppu Arvuta summa nuppu ja nupu alla ilmub järgmine vormindatud väljund.

Järeldus:

Selles õpetuses on uute Pythoni kasutajate abistamiseks selgitatud väga lihtsa PyQt-rakenduse juurutamist. Loodetavasti saab kasutaja pärast selle õpetuse sammude nõuetekohast täitmist ja mõistmist lihtsa PyQt-rakenduse kujundada ja luua.

Kuidas kasutada AutoKeyt Linuxi mängude automatiseerimiseks
AutoKey on Linuxi ja X11 töölaua automatiseerimise utiliit, mis on programmeeritud Python 3, GTK ja Qt. Selle skriptimise ja MACRO funktsionaalsuse ab...
Kuidas näidata FPS-loendurit Linuxi mängudes
Linuxi mängimine sai suure tõuke, kui Valve teatas Steam-kliendi ja nende mängude Linuxi toest 2012. aastal. Sellest ajast peale on paljud AAA- ja ind...
Sid Meieri Civilization VI allalaadimine ja mängimine Linuxis
Sissejuhatus mängu Civilization 6 on kaasaegne kontseptsioon, mis tutvustati Age of Empires mängude sarjas. Idee oli üsna lihtne; alustaksite kõige põ...