GraphicsContext.cpp 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #include "GraphicsContext.h"
  2. QString GraphicsContext::GC_COLOR = "Color";
  3. QString GraphicsContext::GC_COLORED = "Colored";
  4. QString GraphicsContext:: GC_LINEWIDTH = "LineWidth";
  5. QString GraphicsContext::GC_DRAWMODE = "DrawMode";
  6. QString GraphicsContext::GC_SHAPE = "Shape";
  7. QString GraphicsContext:: GC_LUT = "Lut";
  8. QString GraphicsContext::GC_PAINT = "Paint";
  9. QString GraphicsContext:: GC_LINESTYLE = "LineStyle";
  10. GraphicsContext::GraphicsContext()
  11. {
  12. }
  13. void GraphicsContext::applyContext(const HTuple &winID, const QHash<QString, HTuple> &cContext)
  14. {
  15. using namespace HalconCpp;
  16. HTuple valH;
  17. QList<QString> allKey = cContext.keys();
  18. foreach(QString key, allKey)
  19. {
  20. //如果属性相同就跳出循环
  21. if (stateOfSettings.contains(key) && stateOfSettings[key] == cContext[key])
  22. {
  23. continue;
  24. }
  25. valH = cContext[key];
  26. if (key == GC_COLOR)
  27. {
  28. SetColor(winID, valH);
  29. }
  30. else if (key == GC_COLORED)
  31. {
  32. SetColored(winID, valH);
  33. }
  34. else if (key == GC_DRAWMODE)
  35. {
  36. SetDraw(winID, valH);
  37. }
  38. else if (key == GC_LINEWIDTH)
  39. {
  40. SetLineWidth(winID, valH);
  41. }
  42. else if (key == GC_LUT)
  43. {
  44. SetLut(winID, valH);
  45. }
  46. else if (key == GC_PAINT)
  47. {
  48. SetPaint(winID, valH);
  49. }
  50. else if (key == GC_SHAPE)
  51. {
  52. SetShape(winID, valH);
  53. }
  54. else if (key == GC_LINESTYLE)
  55. {
  56. SetLineStyle(winID, valH);
  57. }
  58. //将当前属性添加到系统状态中
  59. if (stateOfSettings.contains(key))
  60. {
  61. stateOfSettings[key] = valH;
  62. }
  63. else
  64. {
  65. stateOfSettings.insert(key, valH);
  66. }
  67. }
  68. }
  69. void GraphicsContext::setAttribute(const QString &key, const HTuple &val)
  70. {
  71. if (graphicalSettings.contains(key))
  72. graphicalSettings[key] = val;
  73. else
  74. graphicalSettings.insert(key, val);
  75. }