Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 20.07.2017
Сообщений: 23

QComboBox при создании item добавлять кроме текста действие

20.07.2017, 17:49. Показов 2188. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Работаю с mysql. Комбобокс заполняю "именами"
C++ (Qt)
1
2
3
4
5
6
7
8
QSqlQuery sc_dispatcher;
    sc_dispatcher.prepare("SELECT * FROM sc_dispatcher");
    sc_dispatcher.exec();
 
    for (int index(0); sc_dispatcher.next(); index++)
    {
        ui->CB_Dispatcher->addItem(sc_dispatcher.value("name").toString());
    }
Дальше при нажатии на кнопочку делаю такой садомазохизм (называю detectCB) чтобы получить ID
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
QString txt = ui->CB_Dispatcher->currentText();
 
    QSqlQuery sc_dispatcher;
    sc_dispatcher.prepare("SELECT * FROM sc_dispatcher WHERE name = :name");
    sc_dispatcher.bindValue(":name", txt);
    sc_dispatcher.exec();
    sc_dispatcher.next();
 
   QString ID = sc_dispatcher.value("id").toInt;
    }
Впринцыпе, работает. Есть и посложнее комбобоксы и тоже все гуд - не жалуюсь. Но увидел в примерах кута проект терминал по работе с QSerialPort. Там для комбобоксов біло такое:
C++ (Qt)
1
2
3
4
5
 ui->parityBox->addItem(tr("None"), QSerialPort::NoParity);
    ui->parityBox->addItem(tr("Even"), QSerialPort::EvenParity);
    ui->parityBox->addItem(tr("Odd"), QSerialPort::OddParity);
    ui->parityBox->addItem(tr("Mark"), QSerialPort::MarkParity);
    ui->parityBox->addItem(tr("Space"), QSerialPort::SpaceParity);
Как я понял можно организовать, чтобы при выборе из комбобокса сразу же и подтягивался ID. Как это сделать ?

Добавлено через 8 минут
Типо такого, только чтобы работало.

C++ (Qt)
1
2
3
4
5
6
7
8
QSqlQuery sc_dispatcher;
    sc_dispatcher.prepare("SELECT * FROM sc_dispatcher");
    sc_dispatcher.exec();
 
    for (int index(0); sc_dispatcher.next(); index++)
    {
        ui->CB_Dispatcher->addItem(sc_dispatcher.value("name").toString(), [COLOR="Red"]ID = sc_dispatcher.value("id").toInt[/COLOR]);
    }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.07.2017, 17:49
Ответы с готовыми решениями:

QComboBox enabled item
Есть ли какая-нибудь стандартная функция в qt для того, чтобы сделать выбранный item enabled?Если нет, то как лучше будет сделать и куда...

При дабл-клике на Item в ListBox совершить действие
Ну, собственно, по сабжу...

При создании новой записи добавлять текущую дату в предыдущую запись
есть две таблицы №1 Услуги "услуги", "дата","цена услуги на дату" цена на каждую услугу может меняться (дата - это дата изменения...

2
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
20.07.2017, 18:09
Лучший ответ Сообщение было отмечено taras_hetman как решение

Решение

C++
1
2
3
4
    for (int index(0); sc_dispatcher.next(); index++)
    {
        ui->CB_Dispatcher->addItem(sc_dispatcher.value("name").toString(), QVariant( sc_dispatcher.value("id").toInt() ));
    }
Получать, соответственно
C++
1
2
3
int index = ui->CB_Dispatcher->currentIndex();
QString txt = ui->CB_Dispatcher->itemText(index);
int ID = ui->CB_Dispatcher->itemData(index).toInt();
Если комбобокс редактируемый, то currentText() выдаст то, что введено в его поле ввода, а не выбранный элемент...
1
0 / 0 / 0
Регистрация: 20.07.2017
Сообщений: 23
20.07.2017, 18:22  [ТС]
Спасибо. Работает. Будем тестировать. Вы избавили меня от огромной части кода.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.07.2017, 18:22
Помогаю со студенческими работами здесь

При создании проекта .Net Core 3.0 пропала возможность добавлять ссылки на сборки
При создании проекта .Net Framework 4.8 (например, консольного приложения) при добавлении в проект ссылки открывается диспетчер ссылок, и...

Как создать метакласс, который при создании класса может читать атрибуты из файла и добавлять их классу?
У метакласса должен быть конструктор,принимающий на вход имя файла. Помогите, пожалуйста.

Действие при нажатии на определенное слово текста
Ребята, подскажите, пожалуйста! Есть текст в формате rtf, который при нажатии на кнопку на форме, открывается в RichEdit. Мне необходимо,...

QComboBox замена текста
Столкнулся с такой проблемой: есть QComboBox в котором отображается список для фильтрации модели, в списке имеется что-то типо "не...

Как сделать проверку на действие: добавлять объект или обновлять
Пишу проект на Spring MVC. Есть методы добавить запись @GetMapping("/add") public String addGroup(Model model) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru