Qt5 QComboBox с несколькими селекторами QCheckBox

Я разработал графический интерфейс с помощью Qt Designer, и, пытаясь создать поле со списком с множественным выбором, я заметил, что не могу изменить элементы графического интерфейса, созданные в файле .UI, через эквивалентный файл .CPP.

Итак, в основном мне интересно, является ли это известной функцией, и мне нужно будет реализовать графический интерфейс исключительно через файл .CPP или я неправильно реализую свой множественный выбор? Я новичок в Qt и немного запутался.

Я пробовал это, но это не работает, когда я пытаюсь реализовать его в своем существующем приложении: ComboBox of CheckBoxes?

Вот часть моего кода. Я инициализирую графический интерфейс, разработанный в Qt Designer, а затем создаю новую модель и назначаю ей данные в соответствии со связанным ответом, а затем пытаюсь изменить модель одного из моих полей со списком на новую. Когда я запускаю приложение, поле со списком есть, но оно пустое.

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ...

    QStandardItemModel model(3, 1); // 3 rows, 1 col
    for (int r = 0; r < 3; ++r)
    {
        QStandardItem* item = new QStandardItem(QString("Item %0").arg(r));

        item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
        item->setData(Qt::Unchecked, Qt::CheckStateRole);

        model.setItem(r, 0, item);
    }

    ui->comboBox_2->setModel(&model);
}

person Jarrod Cabalzar    schedule 19.08.2013    source источник
comment
I tried this but it's not working when I try to implement it within my existing app: ComboBox of CheckBoxes? Вам нужно будет дать дополнительную информацию об этом. Что не работает? Покажите код того, что вы пробовали.   -  person thuga    schedule 19.08.2013
comment
Я запустил код, указанный в ответе на другой вопрос, сам по себе, и он, конечно, отлично работает, однако, когда я пытаюсь создать модель с точным кодом, указанным в этом ответе, а затем назначаю его существующему полю со списком в моем приложение поле отображается пустым. (Например, я нажал на выпадающее меню, и ничего не произошло)   -  person Jarrod Cabalzar    schedule 19.08.2013
comment
Покажи нам свой код. Покажите нам часть, где вы создаете модель, добавляете в нее элементы и устанавливаете ее в поле со списком.   -  person thuga    schedule 19.08.2013
comment
Есть идеи, что не так?   -  person Jarrod Cabalzar    schedule 20.08.2013


Ответы (1)


Мне удалось это исправить, объявив новую модель указателем в заголовочном файле, а затем создав ее экземпляр и назначив поле со списком. :D

person Jarrod Cabalzar    schedule 20.08.2013
comment
Ваш объект QStandardItemModel вышел из области видимости после завершения конструктора MainWindow. Вот почему вам пришлось инициализировать ваш объект с помощью new. - person thuga; 20.08.2013
comment
поскольку у вас есть множественный выбор в поле со списком, какой элемент отображается, когда поле со списком неактивно (когда нет всплывающего окна)? - person Aleksandar; 16.01.2014
comment
@ Александр Я думаю, что я просто повторно заполнил его, чтобы сначала выбрать оценку или что-то в этом роде. Закончил этот проект несколько месяцев назад. - person Jarrod Cabalzar; 17.01.2014