Qt自实现带图标的圆角下拉框

核心思想是使用弹出式QWidget(设置Qt::Popup标志)作为下拉界面,使用QToolButton作为下拉选项,显示文字和图标,当选中一项后,通过修改style sheet,改变下拉框的背景,实现下拉框的颜色和当前选中项的颜色一致

效果如下:

//myComBobox.h

#ifndef MYCOMBOBOX_H
#define MYCOMBOBOX_H

#include <QObject>
#include <QWidget>
#include <QIcon>
#include <QToolButton>
#include <QHBoxLayout>
#include <QButtonGroup>

class MyCombobox : public QToolButton
{
    Q_OBJECT
    struct Item{
        QString text;
        QIcon icon;
        bool enable;
        QToolButton* button;
        QColor color;
    };

public:
    explicit MyCombobox(QWidget *parent = nullptr);
    void addItem(const QString &text, const QIcon& icon);
    void setCurrentIndex(int index);
    int  currentIndex() const{return selected;};
    void setEnabled(int idx, bool val);
signals:
    void curre
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值