Python

Hvordan bruke PyQt QPushButton

Hvordan bruke PyQt QPushButton
Knapper brukes i GUI-applikasjoner for å utføre forskjellige operasjoner basert på hendelsene som genereres av brukeren. De QPushButton klasse av PyQt brukes i Python for å lage knapper som kreves av applikasjonen. Denne klassen arver kjernefunksjonalitetene til QAbstractButton klasse. Tekst eller ikoner kan brukes til å bildetekse knappen. Knapper kan aktiveres med mus og tastatur. Enhver knapphendelse, inkludert knappen som klikkes eller dobbeltklikkes, kan knyttes til en funksjon eller metode for å håndtere hendelsen. Denne veiledningen viser deg hvordan du lager forskjellige typer knapper ved hjelp av QPushButton klasse av PyQt i Python.

QPushButton-metoder

De QPushButton klasse har mange metoder for å utføre forskjellige knapperelaterte oppgaver. Noen av de mest brukte metodene i denne klassen er nevnt nedenfor:

Metodenavn Hensikt
tekst() Brukes til å lese bildeteksten på knappen.
setText () Brukes til å sette tekst i bildeteksten på knappen.
setIcon () Brukes til å sette et ikon i bildeteksten på knappen.
sett standard() Brukes til å angi standardknappen.
setEnabled () Brukes til å aktivere eller deaktivere knapper. En verdi av ekte brukes til å aktivere knappen, og verdien på Falsk brukes til å deaktivere knappen.
setCheckable () Brukes til å identifisere om knappen trykkes eller slippes.
isChecked () Brukes til å lese tilstanden til knappen som er en boolsk verdi.
veksle() Brukes til å veksle mellom stater. Hvis den nåværende verdien av knappetilstanden er ekte, da endres verdien til Falsk, og vice versa.

Bruk av QPushButton

De følgende avsnittene gir flere enkle eksempler for å forklare bruken av QPushButton.

Eksempel 1: Lag en enkel trykknapp

Følgende skript brukes til å lage en enkelt knapp i vinduet. Skriptet legger til en egendefinert funksjon med den klikkede hendelsen på knappen for å sjekke om det er klikket på knappen. Vinduet viser en knapp som følger kjøringen. Hvis brukeren klikker på knappen, teksten 'Knappen trykkes' vises på etiketten.

# Importer nødvendige moduler
importer sys
fra PyQt5.QtWidgets importerer QApplication, QWidget, QPushButton, QLabel
# Definer klasse for å lage en enkelt trykknapp
klasse ButtonExample (QWidget):
def __init __ (selv):
# Ring foreldrekonstruktør
super().__i det__()
# Opprett en knapp
selv-.btn = QPushButton ('Click Me', selv)
# Sett verktøytipstekst for knappen
selv-.btn.setToolTip ('Dette er en enkel knapp')
# Still geometrien til knappen
selv-.btn.setGeometry (100, 20, 100, 30)
# Anropsfunksjon når du klikker på knappen
selv-.btn.klikket.koble (selv.onClicked)
# Definer etiketten nederst på knappen
selv-.msgLabel = QLabel (", selv)
# Still inn geometrien til etiketten
selv-.msgLabel.setGeometry (90, 60, 290, 60)
# Sett tittelen på vinduet
selv-.setWindowTitle ('Bruk av trykknapp')
# Still inn geometrien til hovedvinduet
selv-.setGeometry (10, 10, 300, 150)
# Still inn posisjonen til hovedvinduet på skjermen
selv-.flytte (850, 300)
# Vis vinduet
selv-.vise fram()
# Definer funksjon for å håndtere klikkhendelsen til knappen
def onKlikket (selv):
# Sett tekst for etiketten
selv-.msgLabel.setText ('Knappen trykkes.')
# Opprett appobjekt og kjør appen
app = QApplication (sys.argv)
button = ButtonExample ()
app.utføre ()

Følgende vindu vises etter at skriptet er utført.

Hvis brukeren klikker på Klikk på meg knappen, vil følgende tekst vises i bildeteksten under knappen.

Eksempel 2: Opprett flere trykknapper

Følgende skript oppretter flere trykknapper ved hjelp av QPushButton klasse. To knapper opprettes i skriptet. Den klikkede hendelsen til 'Ja'-knappen er festet til en metode som heter btn1_onClicked (), og den klikkede hendelsen til 'Nei'-knappen er festet til en metode som heter btn2_onClicked (). En bildetekst som er opprettet under knappene, viser den angitte meldingen basert på knappen som brukeren klikker på. De setGeometry () funksjonen brukes for hver etikett og knapp for å angi plasseringen til objektene i vinduet.

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

Liker du python?

', selv)
# Still inn geometrien på etiketten
selv-.topLabel.setGeometry (100, 20, 290, 50)
# Opprett den første knappen
selv-.btn1 = QPushButton ('Ja', selv)
# Still inn geometrien til knappen
selv-.btn1.setGeometry (130, 70, 60, 40)
# Anropsfunksjon når du klikker på knappen
selv-.btn1.klikket.koble (selv.btn1_onClicked)
# Opprett den andre knappen
selv-.btn2 = QPushButton ('Nei', selv)
# Still inn geometrien til knappen
selv-.btn2.setGeometry (200, 70, 60, 40)
# Anropsfunksjon når du klikker på knappen
selv-.btn2.klikket.koble (selv.btn2_onClicked)
# Definer etiketten nederst på knappen
selv-.msgLabel = QLabel (", selv)
# Still inn geometrien på etiketten
selv-.msgLabel.setGeometry (130, 120, 300, 80)
# Sett tittelen på vinduet
selv-.setWindowTitle ('Bruk av flere trykknapper')
# Still inn geometrien til hovedvinduet
selv-.setGeometry (10, 10, 400, 200)
# Still inn posisjonen til hovedvinduet på skjermen
selv-.flytte (850, 300)
# Vis vinduet
selv-.vise fram()
def btn1_onClicked (selv):
# Sett tekst for bunnetiketten
selv-.msgLabel.setText ('

Du klikket Ja.

')
def btn2_onClicked (selv):
# Sett tekst for bunnetiketten
selv-.msgLabel.setText ('

Du klikket på Nei.

')
# Opprett appobjekt og kjør appen
app = QApplication (sys.argv)
knapp = MultiButtons ()
app.utføre ()

Følgende vindu vises etter at skriptet er utført.

Hvis brukeren klikker på Ja knappen, meldingen, 'Du klikket Javises som merketekst.

Hvis brukeren klikker på Nei knappen, meldingen, 'Du klikket Nei vises som merketekst.

Konklusjon

QPushButton-klassen lar brukerne lage en eller flere knapper basert på applikasjonskravene. Denne opplæringen viste bruken av denne klassen for å lage en eller flere knapper, samt hvordan du håndterer klikkhendelser av knapper ved bruk av egendefinerte hendelsesbehandlerfunksjoner.

Kjemp om Wesnoth-opplæringen
Kampen om Wesnoth er et av de mest populære open source-strategispillene du kan spille på dette tidspunktet. Ikke bare har dette spillet vært i utvikl...
0 A.D. Opplæringen
Ut av de mange strategispillene der ute, 0 A.D. klarer å skille seg ut som en omfattende tittel og et veldig dypt, taktisk spill til tross for å være ...
Unity3D opplæring
Introduksjon til Unity 3D Unity 3D er en kraftig spillutviklingsmotor. Det er kryssplattform, det er det lar deg lage spill for mobil, web, stasjonær ...