Re: Re: drawing text issue

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: Re: drawing text issue

Johnson
Hi,  DxLi and Rallaz
 
Currently I don't need CAD purpose , so I could use system QT fonts .
 
But my difficulities now is that
1.  where should the place I insert each text ? Is there any other place rather than drawLayer2 because this function will be drawn by paintEvent as soon as update is called.
 
2.  my requirement is to draw a line ,   on the left up place of the line, I will draft a line.
    I think I could use RS_Line entity and drawText function with system QT font.
    but the problem now is that if I zoom in/out the view,  the RS_line will be changed correspondingly, but the text won't changed.
   
Could you kindly guide me where to implement this feature ? Thanks.
 

wingame82
 

 
Date: 2013-05-23 19:09
Subject: Re: drawing text issue
Hi Johnson,

You can draw text efficiently(see the patch).

CAD uses stick fonts because all fonts are drawn as lines(polylines) and can be converted to CAD entities.

I'm wondering if it's okay to support ordinary fonts, and only revert back to stick fonts when converting is needed. This means efficiency and easy support for all languages.

For the time being, let's fix bugs in 2.0 for a stable release. After that, we implement new features in 2.1.

Thanks,

dxli


diff --git a/librecad/src/lib/gui/rs_graphicview.cpp b/librecad/src/lib/gui/rs_graphicview.cpp
index 726286d..4ee6364 100644
--- a/librecad/src/lib/gui/rs_graphicview.cpp
+++ b/librecad/src/lib/gui/rs_graphicview.cpp
@@ -28,6 +28,7 @@
 #include <limits.h>
 #include "qc_applicationwindow.h"
 #include "rs_graphicview.h"
+#include "rs_painterqt.h"
 
 #include "rs_linetypepattern.h"
 #include "rs_eventhandler.h"
@@ -1094,6 +1095,13 @@ void RS_GraphicView::drawLayer2(RS_Painter *painter)
     // ----------------------------------------------------------
     if (!isPrintPreview())
         drawAbsoluteZero(painter);
+    RS_PainterQt* p0=dynamic_cast<RS_PainterQt*>(painter);
+    if(p0) {
+        DEBUG_HEADER();
+       p0->setPen(0,0,255);
+       p0->setFont(QFont("Times", 20, QFont::Bold));
+       p0->drawText(100, 100, 100, 100, Qt::AlignHCenter, "ABCD");
+    }
 }
 
 



If you reply to this email, your message will be added to the discussion below:
http://forum.librecad.org/drawing-text-issue-tp5708110p5708111.html
To start a new topic under LibreCAD-dev, email [hidden email]
To unsubscribe from LibreCAD-dev, click here.
NAML