Серед елементів віконної форми для користувача інтерфейсу особливу важливість мають поля вибору або введення даних. Обробка встановлюваних значень часто повинна відбуватися миттєво. Тому розробнику необхідно отримувати інформацію при будь-якій зміні у вікнах. У різних ситуаціях при зчитуванні значення поля потрібно враховувати конкретний тип даних і область видимості елемента форми.
Інструкція
При розробці додатків за допомогою бібліотеки програмування Qt віконні форми зазвичай створюються на основі віджетів (клас QWidget) або діалогів (QDialog). Елементи для вибору або введення даних додаються в об'єкти зазначених класів і візуально розташовуються на стандартному або діалоговому вікні.
Для роботи з списком, що випадає використовуйте клас QComboBox. Його видиме робоче поле може бути активним для введення даних або заблокованим. Якщо користувач має можливість ввести в поле значення, то отримати його можна, звернувшись до об'єкта списку. Приклад коду: QComboBox m_comb-QString result-result = m_comb.currentText () - Тут об'єкт m_comb за допомогою методу currentText () повертає поточне значення верхнього поля, причому воно може бути як введеним, так і вибраним в випадаючому списку. У строкової змінної result збережено значення з видимого робочого поля комбобокса.
Однак ведений тип даних може бути і числовим. Для перекладу строкових значень у потрібний тип виконайте одну з наступних операцій: double resD = result.toDouble () - float resF = result.toFloat () - int resI = result.toInt () - Тут в змінну resD збережеться отримане значення поля, але вже в double, в resF - значення типу float і в resI - целочисленное значення int.
При використанні в якості елемента для введення даних редактора однорядкового тексту QLineEdit візьміть потрібну інформацію за допомогою наступної запису: result = m_edit.text (). Тут об'єкт m_edit за допомогою функції text () повертає введене користувачем в поле строкове значення.
Елемент QListBox може виконувати аналогічну функцію у віконній формі, доступ до введених даних для цього об'єкту також схожий на раніше зазначений: m_list.currentText ().
Звертаючись до всіх екземплярів описаних класів, необхідно мати права на відповідний доступ, так як виклик закритих методів і об'єктів неможливий через сторонніх функцій. Розглянуті методи для отримання значення поля мають відкритий статус.