Python

Sådan bruges PyQt QPushButton

Sådan bruges PyQt QPushButton
Knapper bruges i GUI-applikationer til at udføre forskellige operationer baseret på de begivenheder, der genereres af brugeren. Det QPushButton klasse af PyQt bruges i Python til at oprette knapper, der kræves af applikationen. Denne klasse arver kernefunktionaliteterne i QAbstractButton klasse. Tekst eller ikoner kan bruges til at billedtekst på knappen. Knapper kan aktiveres ved hjælp af en mus og et tastatur. Enhver knapbegivenhed, inklusive knappen, der klikkes på eller dobbeltklikkes på, kan knyttes til en funktion eller metode til håndtering af begivenheden. Denne vejledning viser dig, hvordan du opretter forskellige typer knapper ved hjælp af QPushButton klasse af PyQt i Python.

QPushButton-metoder

Det QPushButton klasse har mange metoder til at udføre forskellige knaprelaterede opgaver. Nogle af de mere almindeligt anvendte metoder i denne klasse er nævnt nedenfor:

Metodenavn Formål
tekst() Bruges til at læse billedteksten på knappen.
setText () Bruges til at indstille tekst i billedteksten på knappen.
setIcon () Bruges til at indstille et ikon i billedteksten på knappen.
sæt standard() Bruges til at indstille standardknappen.
setEnabled () Bruges til at aktivere eller deaktivere knapper. En værdi af Rigtigt bruges til at aktivere knappen og en værdi på Falsk bruges til at deaktivere knappen.
setCheckable () Bruges til at identificere, om knappen trykkes eller slippes.
isChecked () Bruges til at læse tilstanden for knappen, der er en boolsk værdi.
skifte () Bruges til at skifte mellem stater. Hvis den aktuelle værdi af knaptilstanden er Rigtigt, derefter ændres værdien til Falsk, og omvendt.

QPushButton-brug

De følgende afsnit giver flere enkle eksempler til forklaring af brugen af QPushButton.

Eksempel 1: Opret en simpel trykknap

Følgende script bruges til at oprette en enkelt knap i vinduet. Scriptet vedhæfter en brugerdefineret funktion med den klikede begivenhed på knappen for at kontrollere, om der er blevet klikket på knappen. Vinduet viser en knap, der følger udførelsen af ​​koden. Hvis brugeren klikker på knappen, vises teksten 'Der trykkes på knappen' vises i etiketten.

# Importer nødvendige moduler
importer sys
fra PyQt5.QtWidgets importerer QApplication, QWidget, QPushButton, QLabel
# Definer klasse for at oprette en enkelt trykknap
klasse ButtonExample (QWidget):
def __init __ (selv):
# Ring til forældrekonstruktør
super().__i det__()
# Opret en knap
selv.btn = QPushButton ('Klik mig', selv)
# Indstil tekst til værktøjstip til knappen
selv.btn.setToolTip ('Dette er en simpel knap')
# Indstil geometrien på knappen
selv.btn.setGeometry (100, 20, 100, 30)
# Opkaldsfunktion, når der trykkes på knappen
selv.btn.klikkede.forbinde (selv.onClicked)
# Definer etiket nederst på knappen
selv.msgLabel = QLabel (", selv)
# Indstil etiketens geometri
selv.msgLabel.setGeometry (90, 60, 290, 60)
# Indstil titlen på vinduet
selv.setWindowTitle ('Brug af PushButton')
# Indstil geometrien i hovedvinduet
selv.setGeometry (10, 10, 300, 150)
# Indstil placeringen af ​​hovedvinduet på skærmen
selv.flytte (850, 300)
# Vis vinduet
selv.at vise()
# Definer funktion til at håndtere klikhændelsen på knappen
def onClicked (selv):
# Indstil tekst til etiketten
selv.msgLabel.setText ('Der trykkes på knappen.')
# Opret app-objekt og udfør appen
app = QApplication (sys.argv)
knap = ButtonExample ()
app.udføre ()

Følgende vindue vises efter udførelse af scriptet.

Hvis brugeren klikker på Klik mig knappen, så vises følgende tekst i billedteksten under knappen.

Eksempel 2: Opret flere trykknapper

Det følgende script opretter flere trykknapper ved hjælp af QPushButton klasse. To knapper oprettes i scriptet. Den klikkede begivenhed i 'Ja'knap er knyttet til en metode, der hedder btn1_onClicked (), og den klikkede begivenhed i 'Ingen'knap er knyttet til en metode, der hedder btn2_onClicked (). En billedtekst, der er oprettet under knapperne, viser den angivne besked baseret på knappen, som brugeren har klikket på. Det setGeometry () funktionen bruges til hver etiket og knap til at indstille placeringen af ​​objekter i vinduet.

importer sys
fra PyQt5.QtWidgets importerer QApplication, QWidget, QPushButton, QLabel
klasse MultiButtons (QWidget):
def __init __ (selv):
# Ring til forældrekonstruktør
super().__i det__()
# Definer etiket øverst på knappen
selv.topLabel = QLabel ('

Kan du lide python?

', selv)
# Indstil etiketens geometri
selv.topLabel.setGeometry (100, 20, 290, 50)
# Opret den første knap
selv.btn1 = QPushButton ('Ja', selv)
# Indstil geometrien på knappen
selv.btn1.setGeometry (130, 70, 60, 40)
# Opkaldsfunktion, når der trykkes på knappen
selv.btn1.klikkede.forbinde (selv.btn1_onClicked)
# Opret den anden knap
selv.btn2 = QPushButton ('Nej', selv)
# Indstil geometrien på knappen
selv.btn2.setGeometry (200, 70, 60, 40)
# Opkaldsfunktion, når der trykkes på knappen
selv.btn2.klikkede.forbinde (selv.btn2_onClicked)
# Definer etiket nederst på knappen
selv.msgLabel = QLabel (", selv)
# Indstil etiketens geometri
selv.msgLabel.setGeometry (130, 120, 300, 80)
# Indstil titlen på vinduet
selv.setWindowTitle ('Brug af flere trykknapper')
# Indstil geometrien i hovedvinduet
selv.setGeometry (10, 10, 400, 200)
# Indstil placeringen af ​​hovedvinduet på skærmen
selv.flytte (850, 300)
# Vis vinduet
selv.at vise()
def btn1_onClicked (selv):
# Indstil tekst til den nederste etiket
selv.msgLabel.setText ('

Du klikkede på Ja.

')
def btn2_onClicked (selv):
# Indstil tekst til den nederste etiket
selv.msgLabel.setText ('

Du klikkede på Nej.

')
# Opret app-objekt og udfør appen
app = QApplication (sys.argv)
knap = MultiButtons ()
app.udføre ()

Følgende vindue vises efter udførelse af scriptet.

Hvis brugeren klikker på Ja knappen, meddelelsen, 'Du klikkede på Ja'vises som etiketteksten.

Hvis brugeren klikker på Ingen knappen, meddelelsen, 'Du klikkede Nej vises som etiketteksten.

Konklusion

QPushButton-klassen giver brugerne mulighed for at oprette en eller flere knapper baseret på applikationskravene. Denne tutorial viste brugen af ​​denne klasse til oprettelse af en eller flere knapper samt hvordan man håndterer klikhændelser for knapper ved hjælp af brugerdefinerede begivenhedshåndteringsfunktioner.

Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...
Sådan installeres League Of Legends på Ubuntu 14.04
Hvis du er fan af League of Legends, er dette en mulighed for dig at prøvekøre League of Legends. Bemærk, at LOL understøttes på PlayOnLinux, hvis du ...
Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...