QComboBox里的每个选项加入多个控件
自定义类头文件:
class ComboboxItem : public QWidget
{
Q_OBJECT
public:
ComboboxItem(QWidget *parent);
~ComboboxItem();
private:
QCheckBox *cBox;
QPushButton *btn;
QHBoxLayout *layout;
};
自定义类源文件:
ComboboxItem::ComboboxItem(QWidget *parent)
: QWidget(parent)
{
setContentsMargins(0, 0, 0, 0);
cBox = new QCheckBox("123", this);
btn = new QPushButton("ggg", this);
btn->setStyleSheet("QPushButton{background-color:rgb(255,0,0);border: 1px solid #000000;border-radius: 11px;}");
layout = new QHBoxLayout(this);
layout->addWidget(cBox);
layout->addWidget(btn);
layout->setStretchFactor(cBox, 4);
layout->setStretchFactor(btn, 1);
layout->setSpacing(0);
layout->setContentsMargins(0, 0, 0, 0);
setLayout(layout);
}
ComboboxItem::~ComboboxItem()
{
}
主程序调用:
box = new QComboBox(this);
box->setGeometry(100, 100, 188, 31);
box->setEditable(true);
box->lineEdit()->setReadOnly(true);
listWidget = new QListWidget(this);
box->setModel(listWidget->model());
box->setView(listWidget);
// 在下拉框中添加5个选项
for (int i = 0; i < 5; ++i)
{
ComboboxItem* comboItem = new ComboboxItem(this);
QListWidgetItem* widgetItem = new QListWidgetItem(listWidget);
widgetItem->setSizeHint(comboItem->sizeHint());
listWidget->addItem(widgetItem);
listWidget->setItemWidget(widgetItem, comboItem);
}
