快捷搜索: 王者荣耀 脱发

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);
}
经验分享 程序员 微信小程序 职场和发展