ComboBoxWidget.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "ComboBoxWidget.h"
  2. #include "DebugUtil.h"
  3. const QString ComboBoxWidget::type = "ComboBox";
  4. ComboBoxWidget::ComboBoxWidget(QWidget *parent)
  5. :QComboBox(parent)
  6. {
  7. setStyleSheet("QComboBox QAbstractItemView {\
  8. color:#333333;\
  9. border: 1px solid #555555;\
  10. background-color: #ffffff;\
  11. border-radius:3px;\
  12. }");
  13. }
  14. QVariant ComboBoxWidget::getValue() const
  15. {
  16. return currentData();
  17. }
  18. void ComboBoxWidget::setValue(const QVariant &value)
  19. {
  20. setCurrentIndex(0);
  21. for (int index = 0; index < count(); ++index)
  22. {
  23. if (value == itemData(index))
  24. {
  25. setCurrentIndex(index);
  26. }
  27. }
  28. }
  29. bool ComboBoxWidget::isValueNull() const
  30. {
  31. if(currentIndex() == 0)
  32. return true;
  33. return false;
  34. }
  35. void ComboBoxWidget::clearInput()
  36. {
  37. setCurrentIndex(0);
  38. }
  39. void ComboBoxWidget::setOptions(const QVariantMap &options)
  40. {
  41. QComboBox::clear();
  42. addItem(QStringLiteral("请选择"), -1);
  43. for (auto iter = options.cbegin(); iter != options.cend(); ++iter)
  44. {
  45. // addItem(iter.key(), iter.value());
  46. addItem(iter.value().toString(), iter.key());
  47. }
  48. }