Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
14 ноября 2018 г. 11:34

QComboBox с QCheckBox

Qt, qcheckbox, QComboBox

Добрый день!

Пытаюсь сделать QComboBox с QCheckBox. Вот тут https://gist.github.com/mistic100/c3b7f3eabc65309687153fe3e0a9a720

скачал класс.

Но возникли трудности. Если вручную создавать, то не показывает флажки, пока его не выберешь (показано на картинке).

Также не могу вручную добавить новую строчку. Так не работает:

ui->SearchCheakComboBox->addCheckItem("text5", 3, Qt::Unchecked);

И не могу понять, что такое const QVariant &data в функции addCheckItem?

Скажите пожалуйста, как решить эти вопросы?





3

Извините, само заработало. Магия.



0

Не подскажите, как узнать checkState () этих CheakBox:

    ui->SearchCheakComboBox->addCheckItem("text0", 0, Qt::Unchecked);
    ui->SearchCheakComboBox->addCheckItem("text1", 1, Qt::Unchecked);
    ui->SearchCheakComboBox->addCheckItem("text2", 2, Qt::Unchecked);

    ui->SearchCheakComboBox->addCheckItem("text3", 3, Qt::Unchecked);


0

вот решение

 // grab the model
  QStandardItemModel* model = qobject_cast<QStandardItemModel*> ( ui->combobox->model() );
  if (!model) { // check is important or u can/might crash 
    qDebug() << "not QStandardItemModel !";
    return;
  }

-----

  // check all if checked
  for (int row = 0; row < model->rowCount(); ++row) {
    if (model->item(row)->checkState() == (Qt::CheckState::Checked)) {
      qDebug() << "checked";
    }
  }

  // set all to checked
  for (int row = 0; row < model->rowCount(); ++row) {
    model->item(row)->setCheckState(Qt::CheckState::Checked);
  }

1

Ответы

Только авторизованные пользователи могут отвечать на форуме.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
9 декабря 2018 г. 22:00
Yura Gajdar

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:70баллов,
  • Очки рейтинга1
9 декабря 2018 г. 2:33
anat_home@ukr.net

C++ - Тест 001. Первая программа и типы данных

  • Результат:100баллов,
  • Очки рейтинга10
9 декабря 2018 г. 2:29
anat_home@ukr.net

C++ - Тест 001. Первая программа и типы данных

  • Результат:60баллов,
  • Очки рейтинга-1
Последние комментарии
9 декабря 2018 г. 8:14
Евгений Легоцкой

Вы можете в QSettings записать откуда угодно bool переменную без всяких чекбоксов. def save_check_box_settings(self): settings = QSettings() settings.setValue(SETTINGS_TRAY,...
8 декабря 2018 г. 13:02
Жасулан Нургожинов

а как можно это сделать без чек бокса
5 декабря 2018 г. 13:25
Евгений Легоцкой

Значит всё-таки в переменных окружения была проблема. Полагаю, что Qt Creator берёт информацию сначала из переменных PATH, либо записывает её из  своего конфига, а потом берёт уже из PATH при ...
5 декабря 2018 г. 13:21
IscanderChe

В переменной PATH путь к CMake был указан как G:\soft\CMake\bin, в реальности же каталог называется Cmake. Причём после изменения в переменной PATH всё заработало, а в Qt Creator путь ос...
5 декабря 2018 г. 10:53
Евгений Легоцкой

Под linux как правило проще, там всё по свои каталогам и полочкам разложено сразу. Думается мне, что проблема все-таки где-то в путях переменных...
Сейчас обсуждают на форуме
9 декабря 2018 г. 18:55
Игорь Максимов

Доброго времени суток. Нашел приложение для конвертации видео + celery что очень радует. Не радует только то что оно отказывается работать под python3 Трейсбек прикладываю: File "/ho...
9 декабря 2018 г. 15:14
Евгений Легоцкой

Непонятно, вы драйвер скачали или собирали? Сдаётся мне, что возможно более правильный вариант собрать своим компилятором вначале его, а потом уже подключать.
8 декабря 2018 г. 18:30
Жасулан Нургожинов

может так будет понятнее# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'C:\Users\hallgato\PycharmProjects\workers.ui'## Created by: PyQt5 UI code generator 5.11...
8 декабря 2018 г. 10:51
Даниил Тетерин

Но если серьезно, то действительно помощь нужна. Мне по-хорошему нужно сдать это в понедельник
Присоединяйтесь к нам в социальных сетях

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы