Этот простой пример показывает, как опрашивать виджеты кнопок Qt разных типов. После создания все они по большей части действуют одинаково. Например, функция PrintActive
QButtonGroup для того, чтобы гарантировать активность только одной радиокнопки в группе в любой момент времени.Переключатели (радиокнопки) — отличный способ, позволяющий пользователю выбрать из небольшого числа вариантов, скажем шести или меньше. Если вариантов больше шести, ситуация начинает выходить из-под контроля и становится еще более напряженной, когда количество вариантов растет, что приводит к ощутимому увеличению размера окна. В этом случае прекрасным решением может быть использование поля ввода с раскрывающимся меню, также называемое раскрывающимся списком (combo box). Варианты выводятся, когда вы щелкаете кнопкой мыши и открываете меню и количество вариантов при этом ограничено только удобством поиска в списке.
В виджете QComboBox
QLineEdit и QPushButton и раскрывающихся меню, позволяя выбрать один вариант из неограниченного набора вариантов.QComboBox
При создании виджета QComboBox
QComboBox *combo = new QComboBox(TRUE, parent, "widgetname");
Передача значения TRUE
QComboBox в режим "чтение/запись". Остальные параметры — обычный указатель на родительский виджет и имя создаваемого виджета.Как все виджеты Qt, QComboBox
Вы можете добавлять варианты по одному или набором, как тип QString
char*.Для вставки одного варианта вызовите функцию insertItem
combo->insertItem(QString("An Item"), 1);
Приведенная функция принимает объект типа QString
Для добавления в конец списка задайте любое отрицательное целое число.
Гораздо чаще вы будете вставлять несколько элементов списка одновременно, для этого можно применить класс QStrList
char*:char* weather[] = {"Thunder", "Lightning", "Rain", 0};
combo->insertStrList(weather, 3);
И снова вы можете задать номер позиции вставляемых в список элементов.
Если в виджете QComboBox
Метод InsertionPolicy
| Значение | Действие |
|---|---|
QComboBox::AtTop | Вставляет вводимый в список элемент первым |
QComboBox::AtBottom | Вставляет вводимый в список элемент последним |
QComboBox::AtCurrent | Заменяет предварительно выбранный вариант в списке |
QComboBox::BeforeCurrent | Вставляет вводимый элемент перед предварительно выбранным вариантом из списка |
QComboBox::AfterCurrent | Вставляет вводимый элемент после предварительно выбранного варианта из списка |
QComboBox::NoInsertion | Новый элемент не вставляется в список вариантов |
Для задания политики вызовите метод InsertionPolicy
QComboBox:combo->setInsertionPolicy(QComboBox::AtTop);
Давайте бросим взгляд на конструкторы и методы выбора варианта виджета QComboBox
#include