„Python“

Kaip naudotis PyQt QComboBox

Kaip naudotis PyQt QComboBox

A „ComboBox“ yra naudojamas pasirinkti vieną elementą iš elementų sąrašo, panašiai kaip radijo mygtukas. The „QComboBox“ „PyQt“ klasė naudojama kuriant išskleidžiamuosius sąrašus naudojant „Python“ scenarijų. Tai atveria elementų, kuriuos vartotojas gali pasirinkti, sąrašą. „ComboBox“ elementus galima pridėti, pakeisti ir pašalinti naudojant scenarijų. „ComboBox“ elementų sąraše galite pasirinkti kelis elementus, pvz., Mygtuką „CheckBox“, tada jis vadinamas „ListBox“. Ši pamoka parodo, kaip naudoti „QComboBox“, norint sukurti išskleidžiamąjį sąrašą „Python“.

„QComboBox“ metodai

„QComboBox“ klasėje yra daug būdų atlikti įvairias užduotis, susijusias su „ComboBox“. Kai kurie dažniausiai naudojami šios klasės metodai aprašyti toliau:

Metodo pavadinimas Tikslas
suskaičiuoti () Skaičiuojamas bendras elementų skaičius sąraše.
Pridėti daiktą() Naudojamas norint pridėti vieną naują elementą į sąrašą.
addItems () Naudojamas norint pridėti kelis elementus į sąrašą.
itemText () Naudojamas tam tikro elemento tekstui skaityti pagal indeksą.
setItemText () Naudojamas nustatyti tam tikro elemento tekstą pagal indeksą.
currentText () Naudojamas skaityti pasirinkto elemento tekstą.
currentIndex () Naudojamas skaityti pasirinkto elemento rodyklę.
aišku () Naudojama norint ištrinti visus elementus iš sąrašo.
paryškintas () Naudojamas, kai elementas sąraše yra paryškintas.
suaktyvinta () Naudojamas, kai vartotojas pasirenka elementą.
currentIndexChanged () Naudojama, kai pasikeitė elementas sąraše.

„ComboBox“ naudojimas

Tolesniuose skyriuose pateikiami pavyzdžiai, paaiškinantys skirtingus „ComboBox“ naudojimo būdus naudojant „PyQt“ bibliotekos „QComboBox“ modulį.

1 pavyzdys: sukurkite paprastą išskleidžiamąjį sąrašą

Šis pavyzdys rodo, kaip sukurti paprastą išskleidžiamąjį sąrašą naudojant „QComboBox“ klasę. Čia sukuriamas išskleidžiamasis penkių elementų sąrašas ir pridedamas prie pasirinktinės funkcijos, kuri atspausdins pasirinktą reikšmę iš sąrašo. Viena etiketė naudojama išskleidžiamojo sąrašo funkcijoje, kad būtų rodomas statinis tekstas, o kita etiketė naudojama žemiau išskleidžiamojo sąrašo, kad būtų rodoma pasirinkta vertė.

# Importuokite būtinus modulius
importuoti sistemas
iš PyQt5.„QtWidgets“ importavimas („QApplication“, „QWidget“, „QLabel“, „QVBoxLayout“, „QComboBox“)
# Paskelbkite klasę, kad sukurtumėte „ComboBox“
klasės „ComboExample“ (QWidget):
def __init __ (savęs):
super ().__init __ ()
# Nustatykite etiketę prieš „ComboBox“
savarankiškai.topLabel = QLabel ('Pasirinkite savo mėgstamą programavimo kalbą:', savarankiškai)
# Apibrėžkite derinį su elementais
combobox = QComboBox (savęs)
„Combobox“.addItem ('PHP')
„Combobox“.addItem ('Python')
„Combobox“.addItem ('Perl')
„Combobox“.addItem ('Bash')
„Combobox“.addItem ('Java')
# Nustatykite etiketę po „ComboBox“
savarankiškai.bottomLabel = QLabel (", savarankiškai)
savarankiškai.bottomLabel.„AdjustSize“ ()
# Apibrėžkite vartinio išdėstymo langelį
v_layout = QVBoxLayout ()
v_layout.addWidget (self.topLabel)
v_layout.„addWidget“ („Combobox“)
v_layout.addWidget (self.bottomLabel)
# Iškvieskite pasirinktinį metodą, jei pasirinktas bet kuris elementas
„Combobox“.suaktyvinta [str].prisijungti (savarankiškai.onSelected)
# Nustatykite lango konfigūracijas
savarankiškai.rinkinysTurinysMarginai (20, 20, 20, 20)
savarankiškai.„setLayout“ („v_layout“)
savarankiškai.judėti (800, 300)
savarankiškai.setWindowTitle ('ComboBox naudojimas')
# Pasirinktinė funkcija nuskaityti pasirinkto elemento vertę
def onSelected (self, txtVal):
txtVal = "\ nPasirinkote:" + txtVal
savarankiškai.bottomLabel.„setText“ („txtVal“)
# Sukurkite programos objektą ir vykdykite programą
app = QApplication (sys.argv)
combobox = ComboExample ()
„Combobox“.Rodyti()
programa.exec ()

Jei atlikęs scenarijų vartotojas spustelės išskleidžiamąjį sąrašą, pasirodys toks sąrašas.

Jei vartotojas pasirenka vertę Bashas išskleidžiamajame sąraše antrosios etiketės vertė bus pakeista įJūs pasirinkote: Bash."

2 pavyzdys: sukurkite „ComboBox“ naudodami sąrašą

Ankstesniame pavyzdyje išskleidžiamasis sąrašas buvo sukurtas naudojant statinius duomenis naudojant „QComboBox“ klasės metodą „addItem“). Šis pavyzdys parodo, kaip pridėti kelis elementus į išskleidžiamąjį sąrašą apibrėžiant „Python“ sąrašą. Pirmiausia, naudodami metodą addItem (), prie pirmo išskleidžiamojo sąrašo elemento pridėsime statinį tekstą. Tada scenarijuje apibrėžsime penkių elementų sąrašą ir pridėsime šiuos elementus prie išskleidžiamojo sąrašo naudodami metodą addItems (). Prie išskleidžiamojo sąrašo pridedama pasirinktinė funkcija, kad pranešimas būtų rodomas etiketėje, atsižvelgiant į vartotojo pasirinkimą.

# Importuokite būtinus modulius
importuoti sistemas
iš PyQt5.„QtWidgets“ importavimas *
# Paskelbkite klasę, kad sukurtumėte kombinuotą dėžutę naudodami sąrašo duomenis
klasės „ComboExample“ (QMainWindow):
def __init __ (savęs):
super ().__init __ ()
# Nustatykite lango žymeklį
savarankiškai.setWindowTitle („ComboBox with List data“)
# Nustatykite lango geometriją
savarankiškai.setGeometry (100, 100, 350, 150)
# Sukurkite derinį
savarankiškai.combobox = QComboBox (savęs)
# Nustatykite derinio langelio geometriją
savarankiškai.„Combobox“.setGeometry (30, 30, 200, 30)
# Apibrėžkite „Combobox“ sąrašo elementus
src_engines = ["google.com "," yahoo.com "," klauskite.com "," baidu.com "," yandex.com "]
# Įgalinkite redaguojamą „Combobox“ parinktį
savarankiškai.„Combobox“.setEditable (True)
# Nustatykite pirmąjį „Combobox“ elementą
savarankiškai.„Combobox“.addItem („Pasirinkite paieškos variklį“)
# Įtraukite kelis elementus į kombinuotą dėžutę naudodami sąrašą
savarankiškai.„Combobox“.addItems (src_engines)
# Apibrėžkite etiketę kombinuoto langelio apačioje, kad vartotojui pateiktų pranešimą
savarankiškai.msgLabel = QLabel (", savarankiškai)
# Nustatykite etiketės geometriją
savarankiškai.msgLabel.setGeometry (30, 60, 290, 60)
# Iškvieskite pasirinktinę funkciją, kai pasirenkamas bet kuris elementas
savarankiškai.„Combobox“.suaktyvinta [str].prisijungti (savarankiškai.onClicked)
# Perkelkite lango padėtį
savarankiškai.judėti (800, 400)
# Rodyti langą
savarankiškai.Rodyti()
# Apibrėžkite metodą, kaip apdoroti „Combobox“ paspaudimo įvykį
def onClicked (self, val):
# Patikrinkite, ar bet kurį elementą pasirinko vartotojas, ar ne
if val == "Pasirinkite paieškos programą":
message = "Jūs nieko nepasirinkote."
Kitas:
message = "Jūsų mėgstamiausias paieškos variklis" + val
# Etiketėje rodykite pranešimo tekstą
savarankiškai.msgLabel.setText (žinutė)
# Rodyti pranešimą konsolėje
spausdinti (pranešimas)
# Sukurkite programos objektą
app = QApplication (sys.argv)
# Sukurkite klasės objekto objektą
combo = ComboExample ()
# Vykdykite programą
programa.exec ()

Jei atlikęs scenarijų vartotojas spusteli išskleidžiamąjį sąrašą, pasirodys toks sąrašas.

Jei vartotojas pasirenka bet kurį elementą, išskyrus pirmą elementą išskleidžiamajame sąraše, pasirinkta vertė bus rodoma etiketėje, derinant su kitu tekstu.

Jei vartotojas išskleidžiamajame sąraše pasirenka pirmąjį elementą, tada reikšmę 'Nieko nepasirinkotebus rodomas etiketėje.

Išvada

Šis straipsnis parodė, kaip sukurti ir naudoti „Python“ išskleidžiamuosius sąrašus naudojant „QComboBox“ pamoka, naudodama paprastus pavyzdžius, kurie padės geriau suprasti šios klasės naudojimą.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Peržiūrėkite pelės mygtukus skirtingai programinei įrangai naudodami „X-Mouse Button Control“
Galbūt jums reikia įrankio, kuris galėtų pakeisti jūsų pelės valdymą kiekvienoje jūsų naudojamoje programoje. Tokiu atveju galite išbandyti programą, ...
„Microsoft Sculpt Touch“ belaidžio pelės apžvalga
Neseniai skaičiau apie „Microsoft Sculpt Touch“ belaidę pelę ir nusprendė ją nusipirkti. Kurį laiką naudojęs, nusprendžiau pasidalinti savo patirtimi....