Russian Qt Forum
Апрель 29, 2024, 02:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QComboBox не вносит последний введенный текст в свой список.  (Прочитано 3675 раз)
Mitya
Гость
« : Октябрь 10, 2011, 21:19 »

Есть QComboBox с включенным Editable. Считываю через QComboBox::itemText(index) все введенные строки. Все считываются, кроме последнего введенного, если ввод не был завершен Enter`ом(например кликнули на другой виджет). Но при этом через QComboBox::currentText() данная строка доступна. Сейчас работает путем перебора всех индексов и запросом на текущий, но кажется это немного моветон. Как правильно?
Записан
Bepec
Гость
« Ответ #1 : Октябрь 11, 2011, 14:43 »

Код в студию, и тогда я приеду к вам с банкой огурцов и добрым советом.
Записан
Mitya
Гость
« Ответ #2 : Октябрь 11, 2011, 19:39 »

//Создаем и заполняем
Код
C++ (Qt)
QComboBox *cbGroup = new QComboBox();
cbGroup->setInsertPolicy(QComboBox::InsertAlphabetically);
cbGroup->addItems(debetGroup);
cbGroup->setEditable(true);
.....
//Не знаю важно это или нет, QComboBox вставлен в QTableWidget
Код
C++ (Qt)
debetTable->setCellWidget(currentRow, 1, cbGroup);
...
//Подключение обработки событий на введенный новый текст
Код
C++ (Qt)
   connect(cbGroup, SIGNAL(currentIndexChanged(QString)),
           this, SLOT(addGroup(QString)));
...
//Собственно сам процесс считывания данных
Код
C++ (Qt)
QComboBox *tmpCB;
QStringList debetGroup;
 
tmpCB = (QComboBox *)ui->debetTable->cellWidget(i, 1);
debetGroup<<tmpCB->currentText();              
 
]for (int x = 0; x<tmpCB->count(); x++)
{
   debetGroup<<tmpCB->itemText(x);
};

как то так...
Записан
Bepec
Гость
« Ответ #3 : Октябрь 12, 2011, 08:07 »

Посмотрел твою проблемку. Создал у себя примерчик и немного озадачился.

Код:
 connect(cbGroup, SIGNAL(currentIndexChanged(QString)), this, SLOT(addGroup(QString)));

реагирует именно на Enter как на конец редактирования.


У тебя 2 выбора:
1) как у тебя и реализовано, дотыкивать все куррент тексты по порядку.

2) или же на евент потери фокуса добавить функционал добавления, обычным addItem. Что более мне импонирует.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.115 секунд. Запросов: 20.