Kasutajaliidese akna vormi elementide hulgas on valiku- või andmesisestusväljad eriti olulised. Määratud väärtuste töötlemine peab sageli toimuma hetkega. Seetõttu peab arendaja saama teavet kõigi muudatuste kohta akendes. Erinevates olukordades peate välja väärtuse lugemisel arvestama konkreetse andmetüübi ja vormielemendi ulatusega.
Juhised
Samm 1
Rakenduste arendamisel Qt programmeerimisraamatukoguga luuakse aknavormid tavaliselt vidinatest (QWidget klass) või dialoogidest (QDialog). Valiku või andmete sisestamise elemendid lisatakse määratud klasside objektidele ja asuvad visuaalselt standard- või dialoogiboksis.
2. samm
Kasutage rippmenüüga töötamiseks klassi QComboBox. Selle nähtav tööväli võib andmete sisestamisel olla aktiivne või lukustatud. Kui kasutaja saab väljale väärtuse sisestada, saate selle loendiobjektile viidates. Koodinäide: QComboBox m_comb; QString result; result = m_comb.currentText (); Siin tagastab meetodi currentText () abil objekt m_comb ülemise välja praeguse väärtuse ja selle saab sisestada või valida rippmenüüs nimekirja. Stringi muutuja tulemus sisaldab väärtust liitkasti nähtaval tööväljal.
3. samm
Sisestatud andmetüüp võib olla aga ka numbriline. Stringi väärtuste teisendamiseks vajalikuks tüübiks tehke üks järgmistest toimingutest: double resD = result.toDouble (); float resF = result.toFloat (); int resI = result.toInt (); Siin salvestatakse saadud välja väärtus resD muutujas, kuid juba topelt, resF - ujukväärtus ja resI - int täisarv.
4. samm
QLineEdit ühe rea tekstiredaktori kasutamisel andmesisestuse elemendina haarake vajaliku teabe järgmise kirjega: result = m_edit.text (). Siin tagastab objekt m_edit funktsiooni text () kasutades väljale sisestatud stringi väärtuse.
5. samm
QListBoxi element võib sarnast funktsiooni täita aknalises vormis, juurdepääs selle objekti sisestatud andmetele on samuti sarnane eelnevalt määratud üksusega: m_list.currentText ().
6. samm
Kõigile kirjeldatud klasside eksemplaridele juurde pääsemisel peavad teil olema asjakohased juurdepääsuõigused, kuna privaatsete meetodite ja objektide kutsumine on kolmanda osapoole funktsioonidest võimatu. Vaadeldud meetodid väljaväärtuse saamiseks on avatud olekuga.