Класс QComboBox

   
На этом шаге рассмотрим класс QComboBox.

   
Класс QComboBox предоставляет пользователю возможность выбора одного элемента из нескольких. Его функциональное назначение совпадает с виджетом простого списка QListWidget. Основное преимущество выпадающего списка состоит в отображении только одного (выбранного) элемента, благодаря чему для его размещения не требуется много места. Отображение всего списка (раскрытие) происходит только на некоторый промежуток времени, чтобы пользователь мог сделать выбор, а затем список возвращается в свое исходное состояние (сворачивается).

   
В качестве элемента можно добавить текст и/или картинку. Для этого служит метод addItem(). Можно добавить сразу несколько текстовых элементов, передав указатель на объект класса QStringList в метод addItems().

   
Вызвав метод setDuplicatesEnabled(false), можно включить режим, исключающий повторяющиеся элементы из списка. Если необходимо удалить все элементы выпадающего списка, тогда вызывается слот clear().

   
Чтобы узнать, какой из элементов является текущим, нужно вызывать метод currentIndex(), который возвратит его порядковый номер.

   
Можно сделать так, чтобы пользователь мог сам добавлять элементы в список. Типичным примером этого является адресная строка Проводника ОС Windows, содержащая в себе список просмотренных адресов (ссылок). Для установки виджета в этот режим вызывается метод setEditable() с параметром true. После того как пользователь изменил текст выбранного элемента, отправляется сигнал editTextChanged(const QString&), и новый элемент добавляется в список.

   
После выбора элемента отправляются сразу два сигнала activated() — один с параметром типа int (индексом выбранного элемента), а другой с параметром типа const QString& (его значением). Эти сигналы отправляются, даже если пользователь выбрал ранее выбранный элемент; для информирования о реальном изменении служат два сигнала currentIndexChanged(), также отправляемые с параметрами int и const QString& каждый.

   
Пример, приведенный на рис. 1, демонстрирует виджет выпадающего списка. При изменении элемента список дополнится новым элементом.


Рис.1. Пример выпадающего списка

   
Рассмотрим текст приложения:

//создается виджет выпадающего списка cb
QComboBox cb;
QStringList lst;
//в список lst добавляются строки
lst << "Январь" << "Февраль" << "Март" << "Апрель";
//строки устанавливаются вызовом метода addItems()
//в виджете выпадающего списка
cb.addItems(lst);
//вызов метода setEditable() с параметром true
//переводит список в режим редактирования
cb.setEditable(true);
cb.show();

   
Файлы приложения можно взять Предыдущий шаг
Содержание
Следующий шаг



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий