1234567891011121314151617181920212223242526272829303132333435 |
- #ifndef _CUSTOMCOMBOBOX_H_
- #define _CUSTOMCOMBOBOX_H_
- #include <QComboBox>
- /**
- * @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_
|