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 modulerimporter 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 sysfra 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.