#pragma once #include class CustomComboBox : public QComboBox { Q_OBJECT public: CustomComboBox(QWidget* parent = nullptr); ~CustomComboBox(); void setEditColor(); // 更新样式 void setSavedColor(); // 恢复样式 void setWheelEnabled(bool enabled); // 禁用或启用滚轮 void setRefreshOnClick(bool enabled); // 是否在点击时刷新 void setCurrentIndexByData(const QVariant& data); // 根据数据设置默认项 protected: bool eventFilter(QObject* watched, QEvent* event) override; // 捕获滚轮事件 void showPopup() override; // 重写下拉框弹出事件 private: bool m_wheelEnabled = true; // 默认启用滚轮 bool m_refreshOnClick = true; // 默认点击时调用刷新 bool m_firstClick = true; //QString m_oldValue; // 用于保存上一次的值 int m_oldValue; // 用于保存上一次的值 };