#ifndef _CUSTOMCOMBOBOX_H_ #define _CUSTOMCOMBOBOX_H_ #include /** * @brief 1、使用此类绘制下拉框阴影需要在样式表中设置QAbstractItemView {margin: LISTVIEW_MARGIN;} * 否则阴影会被遮挡 * 2、调用函数setViewShadowEffect()设置下拉框阴影 * 3、调用setViewShadowEffect()前,需要先设置样式表 */ class CustomComboBox : public QComboBox { public: explicit CustomComboBox(QWidget *parent = nullptr); ~CustomComboBox() override; /* 设置下拉框阴影,需要先设置样式表,再调用此函数 */ void setViewShadowEffect(); //重写下拉框弹出位置 void showPopup() override; /* 禁用滚轮修改内容 */ void setWheelDisabled(bool disabled = true) { m_wheelDisabled = disabled; } protected: void wheelEvent(QWheelEvent *event) override; private: const int LISTVIEW_MARGIN = 12; // QAbstractItemView边距(阴影宽度) bool m_wheelDisabled = false; // 是否禁用滚轮修改内容 }; #endif // _CUSTOMCOMBOBOX_H_