breadcrumb.h 514 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <QListWidget>
  3. #include "qtwidgets_global.h"
  4. namespace craftlab::ui
  5. {
  6. class QTWIDGETS_EXPORT Breadcrumb : public QWidget
  7. {
  8. Q_OBJECT
  9. public:
  10. Breadcrumb(QWidget* parent = nullptr);
  11. void clear();
  12. void addItem(const QString& label);
  13. void addItem(const QIcon& icon, const QString& label);
  14. signals:
  15. void SelectionChanged(int index);
  16. private:
  17. void addItem(QListWidgetItem*);
  18. QWidget* BuildItemWidget(const QListWidgetItem& item);
  19. std::unique_ptr<QListWidget> inner;
  20. };
  21. }