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

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.


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.



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())
+    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:
To start a new topic under LibreCAD-dev, email [hidden email]
To unsubscribe from LibreCAD-dev, click here.