searchcombobox.h 913 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef SEARCHCOMBOBOX_H
  2. #define SEARCHCOMBOBOX_H
  3. #include <QComboBox>
  4. #include <QMouseEvent>
  5. class SearchComboBox : public QComboBox
  6. {
  7. Q_OBJECT
  8. public:
  9. typedef struct ItemData
  10. {
  11. QString text;
  12. QVariant userdata;
  13. QString alphbat;
  14. }ItemData;
  15. public:
  16. explicit SearchComboBox(QWidget *parent = nullptr);
  17. ~SearchComboBox();
  18. //重写下拉框弹出位置
  19. void showPopup() override;
  20. void hidePopup() override;
  21. void clear();
  22. void addItem(const QString &text, const QVariant &userData = QVariant());
  23. void autoquery();
  24. protected:
  25. bool event(QEvent *event) override;
  26. void wheelEvent(QWheelEvent *e) override;
  27. private slots:
  28. void OnCurrentIndexChanged(const QString &text);
  29. private:
  30. int m_nMargin;
  31. QList<ItemData> m_items;
  32. bool m_autoquery;
  33. bool m_showPopup;
  34. QString m_currentText;
  35. };
  36. #endif // SEARCHCOMBOBOX_H