Ich zeige Kontrollkästchen in Comboboxen an, die eine Anpassung des folgenden Codes verwenden. Leider verhalten sich die Checkboxen nicht genau wie erwartet. Im Gegensatz zu einer "normalen" Checkbox kann man nicht klicken Sie auf das Label des Kontrollkästchens, um das Kontrollkästchen (un) zu markieren.Ein Kontrollkästchen in einer QComboBox umschalten
Gibt es eine Möglichkeit, die Kontrollkästchen innerhalb der Comboboxen sich genau wie eine "normale" Checkbox zu verhalten (d. H. Klicken auf das Label (un-) prüft es)?
#include <QtGui>
#include <QApplication>
#include <QComboBox>
#include <QTableView>
#include <QVBoxLayout>
#include <QListView>
#include <QCheckBox>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QStandardItemModel model;
QList<QStandardItem*> items;
for (int i = 0; i < 5; i++) {
QStandardItem* item = new QStandardItem(QString("Item %0").arg(i));
item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
item->setData(Qt::Unchecked, Qt::CheckStateRole);
items.append(item);
}
model.appendColumn(items);
QComboBox* comboBox = new QComboBox();
comboBox->setModel(&model);
QVBoxLayout* layout = new QVBoxLayout();
layout->addWidget(comboBox);
layout->addWidget(new QCheckBox("Label"));
QWidget widget;
widget.setLayout(layout);
widget.show();
return app.exec();
}
Mögliches Duplikat von [ComboBox von CheckBoxes?] (Http://stackoverflow.com/questions/8422760/combobox-of-checkboxes) – mohabouje
Sie müssen Ihre eigene QItemDelegate ableiten und die Paint-Event-Funktion implementieren. Siehe: http://stackoverflow.com/questions/8422760/combobox-of-checkboxes – mohabouje