Python

Hoe PyQt QComboBox te gebruiken

Hoe PyQt QComboBox te gebruiken

EEN ComboBox wordt gebruikt om één item uit een lijst met items te selecteren, net zoals het keuzerondje. De QComboBox klasse van PyQt wordt gebruikt om vervolgkeuzelijsten te maken met behulp van het Python-script. Er verschijnt een lijst met items die de gebruiker kan selecteren. De items van de ComboBox kunnen worden toegevoegd, gewijzigd en verwijderd met behulp van het script. Meerdere items kunnen worden geselecteerd, zoals de CheckBox-knop uit de lijst met items van de ComboBox, dan wordt het ListBox genoemd. Deze tutorial laat zien hoe je QComboBox gebruikt om een ​​vervolgkeuzelijst in Python te maken.

QComboBox-methoden

De klasse QComboBox bevat veel methoden voor het uitvoeren van verschillende taken die verband houden met ComboBox. Enkele van de meest gebruikte methoden van deze klasse worden hieronder beschreven:

Methode Naam: Doel
tel() Wordt gebruikt om het totale aantal items in de lijst te tellen.
Voeg item toe() Wordt gebruikt om één nieuw item aan de lijst toe te voegen.
items toevoegen() Wordt gebruikt om meerdere items aan de lijst toe te voegen.
itemText() Wordt gebruikt om de tekst van een bepaald item te lezen op basis van een index.
setItemText() Wordt gebruikt om de tekst van een bepaald item in te stellen op basis van een index.
huidigeText() Wordt gebruikt om de tekst van het geselecteerde item te lezen.
huidigeIndex() Wordt gebruikt om de index van het geselecteerde item te lezen.
Doorzichtig() Wordt gebruikt om alle items uit de lijst te verwijderen.
gemarkeerd() Wordt gebruikt wanneer een item in de lijst is gemarkeerd.
geactiveerd() Gebruikt wanneer een item is geselecteerd door de gebruiker.
huidigeIndexChanged() Gebruikt wanneer het item in de lijst is gewijzigd.

ComboBox-gebruik

De volgende secties bevatten voorbeelden die enkele verschillende toepassingen van de ComboBox uitleggen met behulp van de QComboBox-module van de PyQt-bibliotheek.

Voorbeeld 1: Maak een eenvoudige vervolgkeuzelijst

Dit voorbeeld laat zien hoe u een eenvoudige vervolgkeuzelijst maakt met behulp van de QComboBox-klasse. Hier wordt een vervolgkeuzelijst met vijf elementen gemaakt die is gekoppeld aan een aangepaste functie die de geselecteerde waarde uit de lijst zal afdrukken. Eén label wordt gebruikt in de functie van de vervolgkeuzelijst om statische tekst weer te geven, en een ander label wordt gebruikt onder de vervolgkeuzelijst om de geselecteerde waarde weer te geven.

# Importeer benodigde modules
import systeem
van PyQt5.QtWidgets importeren (QApplication, QWidget, QLabel, QVBoxLayout, QComboBox)
# Declareer klasse om de ComboBox te maken
klasse ComboExample(QWidget):
def __init__(zelf):
super().__in het__()
# Zet het label voor de ComboBox
zelf.topLabel = QLabel('Selecteer uw favoriete programmeertaal:', self)
# Definieer de combobox met items
combobox = QComboBox(zelf)
combobox.addItem('PHP')
combobox.addItem('Python')
combobox.addItem('Perl')
combobox.addItem('Bash')
combobox.addItem('Java')
# Stel het label in na de ComboBox
zelf.bottomLabel = QLabel(", zelf)
zelf.onderLabel.AanpassenSize()
# Definieer vartical layout box
v_layout = QVBoxLayout()
v_layout.addWidget(zelf).topLabel)
v_layout.addWidget(combobox)
v_layout.addWidget(zelf).onderLabel)
# Roep de aangepaste methode aan als een item is geselecteerd
combobox.geactiveerd[str].verbinden (zelf).op geselecteerd)
# Stel de configuraties voor het venster in
zelf.setContentsMarges(20, 20, 20, 20)
zelf.setLayout(v_layout)
zelf.verplaatsen(800, 300)
zelf.setWindowTitle('Gebruik van ComboBox')
# Aangepaste functie om de waarde van het geselecteerde item te lezen
def onSelected(self, txtVal):
txtVal = "\nU hebt geselecteerd: " + txtVal
zelf.onderLabel.setText(txtVal)
# Maak een app-object en voer de app uit
app = QApplicatie(sys.argv)
combobox = ComboExample()
combobox.tonen()
app.exec()

Als de gebruiker op de vervolgkeuzelijst klikt nadat het script is uitgevoerd, verschijnt de volgende lijst:.

Als de gebruiker de waarde selecteert: bash uit de vervolgkeuzelijst wordt de waarde van het tweede label gewijzigd in 'Je hebt geselecteerd: Bash.'

Voorbeeld 2: Maak een ComboBox met behulp van de lijst

In het vorige voorbeeld is de vervolgkeuzelijst gemaakt met statische gegevens met behulp van de methode addItem() van de QComboBox-klasse. Dit voorbeeld laat zien hoe u meerdere items in de vervolgkeuzelijst kunt toevoegen door een Python-lijst te definiëren. Eerst voegen we statische tekst toe aan het eerste item van de vervolgkeuzelijst met behulp van de methode addItem(). Vervolgens zullen we een lijst met vijf elementen in het script definiëren en deze elementen toevoegen aan de vervolgkeuzelijst met behulp van de methode addItems(). Er is een aangepaste functie toegevoegd aan de vervolgkeuzelijst om het bericht in het label weer te geven op basis van de gebruikersselectie.

# Importeer benodigde modules
import systeem
van PyQt5.QtWidgets importeren *
# Declareer de klas om combobox te maken met behulp van lijstgegevens
klasse ComboExample (QHoofdvenster):
def __init__(zelf):
super().__in het__()
# Stel de titel van het venster in
zelf.setWindowTitle("ComboBox met lijstgegevens")
# Stel de geometrie voor het venster in
zelf.setGeometrie(100, 100, 350, 150)
# Maak combobox
zelf.combobox = QComboBox(zelf)
# Stel de geometrie in voor de combobox
zelf.combobox.setGeometrie(30, 30, 200, 30)
# Definieer lijstitems voor de combobox
src_engines = ["google.com", "yahoo.com", "vraag.com", "baidu.com", "yandex.com"]
# Schakel de bewerkbare optie van de combobox in
zelf.combobox.setBewerkbaar (waar)
# Stel het eerste item in voor de combobox
zelf.combobox.addItem("Selecteer zoekmachine")
# Voeg meerdere items toe aan de combobox met lijst
zelf.combobox.addItems(src_engines)
# Definieer een label onderaan de combobox om de gebruiker een bericht te geven
zelf.msgLabel = QLabel(", zelf)
# Stel de geometrie voor het label in
zelf.msgLabel.setGeometrie(30, 60, 290, 60)
# Roep de aangepaste functie op wanneer een item is geselecteerd
zelf.combobox.geactiveerd[str].verbinden (zelf).op geklikt)
# Verplaats de positie van het venster
zelf.verplaatsen(800, 400)
# Geef het venster weer
zelf.tonen()
# Definieer een methode om de klikgebeurtenis van de Combobox af te handelen
def onClicked(self, val):
# Controleer of een item door de gebruiker is geselecteerd of niet
if val == "Selecteer zoekmachine":
message = "Je hebt niets geselecteerd."
anders:
message = "Uw favoriete zoekmachine is " + val
# Toon de berichttekst in het label
zelf.msgLabel.setText(bericht)
# Toon het bericht in de console
afdrukken (bericht)
# Maak het app-object
app = QApplicatie(sys.argv)
# Maak een object van het klasseobject
combo = ComboVoorbeeld()
# Voer de app uit
app.exec()

Als de gebruiker na het uitvoeren van het script op de vervolgkeuzelijst klikt, verschijnt de volgende lijst:.

Als de gebruiker een item selecteert behalve het eerste item in de vervolgkeuzelijst, wordt de geselecteerde waarde in het label weergegeven door deze te combineren met de andere tekst.

Als de gebruiker het eerste item in de vervolgkeuzelijst selecteert, wordt de waarde 'Je hebt niets geselecteerd' wordt weergegeven in het label.

Conclusie

Dit artikel liet je zien hoe je vervolgkeuzelijsten in Python kunt maken en gebruiken met behulp van de QComboBox klas met behulp van eenvoudige voorbeelden om u te helpen het gebruik van deze klas beter te begrijpen.

Wijs uw muisknoppen anders toe voor verschillende software met X-Mouse Button Control
Misschien heeft u een tool nodig waarmee u de bediening van uw muis kunt veranderen bij elke applicatie die u gebruikt. Als dit het geval is, kunt u e...
Microsoft Sculpt Touch draadloze muis Review
Ik las onlangs over de Microsoft Sculpt Touch draadloze muis en besloot hem te kopen. Nadat ik het een tijdje had gebruikt, besloot ik mijn ervaring e...
AppyMouse trackpad en muisaanwijzer op het scherm voor Windows-tablets
Tabletgebruikers missen vaak de muisaanwijzer, vooral wanneer ze gewend zijn om de laptop te gebruiken. Het touchscreen Smartphones en tablets hebben ...