main.qml 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. import QtQuick 2.5
  2. import QtQuick.Controls 1.4
  3. import "./simplify.js" as Simplify
  4. ApplicationWindow {
  5. visible: true
  6. width: 640
  7. height: 480
  8. title: qsTr("Hello World")
  9. MainForm {
  10. property int curImage:1;
  11. anchors.fill: parent
  12. button1.onClicked: {
  13. curImage=Math.min(curImage+1,5);
  14. }
  15. button2.onClicked: {
  16. curImage=Math.max(curImage-1,1);
  17. }
  18. onCurImageChanged: {
  19. canvas.change_image("EBA",curImage);
  20. }
  21. button3.onClicked: {
  22. canvas.paint_canvas();
  23. }
  24. mouseArea1.onPressed: {
  25. canvas.start_path();
  26. }
  27. mouseArea1.onPositionChanged: {
  28. canvas.add_point({x:mouse.x,y:mouse.y});
  29. //canvas.paint_canvas();
  30. }
  31. mouseArea1.onReleased: {
  32. canvas.finish_path();
  33. }
  34. Canvas {
  35. id: canvas
  36. width: 320
  37. height: 250
  38. antialiasing: true
  39. property color strokeStyle: Qt.darker(fillStyle, 1.2)
  40. property color fillStyle: "#6400aa"
  41. property int lineWidth: 2
  42. property real px: width/2
  43. property real py: height/2 + 10
  44. property real alpha: 1.0
  45. property variant points_array: [ ]
  46. property string curImageUrl: "https://plataforma.especificosba.com.ar/diapo/EBA/1.png";
  47. onPaint: paint_canvas();
  48. onLineWidthChanged: requestPaint();
  49. onImageLoaded: requestPaint();
  50. function start_path(){
  51. points_array.push([]);
  52. }
  53. function finish_path(){
  54. points_array[points_array.length-1]=Simplify.simplify(points_array[points_array.length-1],3);
  55. requestPaint();
  56. //ws.send()..
  57. }
  58. function change_image(pdf,number){
  59. curImageUrl="https://plataforma.especificosba.com.ar/diapo/"+pdf+"/"+number+".png";
  60. requestPaint();
  61. }
  62. function add_point(p) {
  63. points_array[points_array.length-1].push(p);
  64. requestPaint();
  65. }
  66. function paint_canvas(){
  67. var curColor= '#ff0000';
  68. var ctx = canvas.getContext("2d");
  69. canvas.loadImage(curImageUrl);
  70. if (canvas.isImageLoaded(curImageUrl)){
  71. ctx.drawImage(curImageUrl,0,0,canvas.width,canvas.height);
  72. }
  73. ctx.lineCap = 'square';
  74. ctx.lineWidth = 2;
  75. ctx.strokeStyle = curColor;
  76. ctx.beginPath();
  77. var i=0,j=0;
  78. for(j=0;j<points_array.length;j++){
  79. var points = points_array[j];
  80. ctx.moveTo(points[0].x, points[0].y);
  81. for(i=0;i<points.length-1;i++){
  82. ctx.moveTo(points[i].x, points[i].y);
  83. ctx.lineTo(points[i+1].x, points[i+1].y);
  84. }
  85. }
  86. ctx.stroke();
  87. }
  88. }
  89. }
  90. }