Problems with Open-Source Downloads read https://www.qt.io/blog/problem-with-open-source-downloads and https://forum.qt.io/post/638946

Little aplication that translate a string in Arabic and after save this Label in BMP



  • [quote author="Andre" date="1333378587"]The rendering to an image is the simple part... Just create a QImage, create a QPainter on that, and render your Arabic string using QPainter::paintText()[/quote]



  • Sorry.. but i'm a newbie in QT can you create for me a little application with this operations?
    After i study your example for training... I want to learn QT and i want start from this first application..

    Please :)



  • Sorry, no. I'm not going to do your homework for you. However, if why don't you just give it a (serious) try, and post your code when you get stuck? I'm sure somebody, perhaps myself, will be willing to help you out then. But you have to show that you're willing to put in effort of your own first.



  • ok you can guide me step by step? Not is my housework :) i'm only a pensioner who wants to learn QT :D



  • [quote author="enaud84" date="1333380451"]ok you can guide me step by step?[/quote]

    Why don't you give it a try and get started? We're not here to hold your hand every baby step of the way, but in general, we're a friendly bunch that are ready to help you. I already gave you a pointer on where to get started for the rendering stuff: [[doc:QImage]]. Note that that class also supports saving to file, including .bmp files (through a plugin, but that's of secundairy importance right now).



  • ok.. then start with :
    @
    #include <QtGui/QApplication>
    #include "mainwindow.h"
    #include <QPainter>

    int main(int argc, char *argv[])
    {
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    QImage myImage;

    return a.exec(&#41;;
    

    }
    @
    to be continued..

    edit: please use @ tags around code sections; Andre



  • now how create a Painter on that?



  • [[doc:QPainter]] only has one constructor that looks relevant... See if you can spot it as well. For better understanding, try if you can find out what QImage actually is, what class it inherits from.



  • I think:

    @
    QPainter painter( &myImage );
    @



  • OK, great. So now you have a QPainter on your QImage. Time to use that painter for something useful, right. Can you spot a useful method for painting text in the QPainter documentation?

    Perhaps you should give your image a size too... It is hard to paint if your canvas is too small, after all.



  • Hi,
    how set size of Image?
    I not find method for painting text in the QPainter documentation :(

    Thanks



  • enaud84 - I don't think what you people are doing in this threat is going to work any time soon. If your English is decent go and read a book on Qt, it will take you a while but you will actually learn something and be able to develop on your own without needing to be pushed every step of the way.

    Here is a link to a GOOD and FREE book on programming with Qt, it also contains the basics of C++ so it is a very good learning resource:
    http://ptgmedia.pearsoncmg.com/images/9780131879058/downloads/0131879057_Ezust_book.pdf

    As you get familiar with C++ and Qt you will find it much easier to work with the Qt documentation as well. I can tell you cannot get your way around the Qt DOC since you claim you cannot find a QPainter method for drawing text, and there is a whole bunch of overloads of the drawText() method.

    Good luck, be patient and consistent and you will be rewarded.



  • [quote author="enaud84" date="1333400351"]Hi,
    how set size of Image?
    I not find method for painting text in the QPainter documentation :(

    Thanks[/quote]
    No, I understand that. But you would not expect to control the size of a real painting canvas via your brush or pencil either, right? Perhaps you should look at the [[doc:QImage]] documentation for a way to set the size of the image...



  • this book is perfect! it start from zero :)
    very thanks :)
    [quote author="ddriver" date="1333401818"]enaud84 - I don't think what you people are doing in this threat is going to work any time soon. If your English is decent go and read a book on Qt, it will take you a while but you will actually learn something and be able to develop on your own without needing to be pushed every step of the way.

    Here is a link to a GOOD and FREE book on programming with Qt, it also contains the basics of C++ so it is a very good learning resource:
    http://ptgmedia.pearsoncmg.com/images/9780131879058/downloads/0131879057_Ezust_book.pdf

    As you get familiar with C++ and Qt you will find it much easier to work with the Qt documentation as well. I can tell you cannot get your way around the Qt DOC since you claim you cannot find a QPainter method for drawing text, and there is a whole bunch of overloads of the drawText() method.

    Good luck, be patient and consistent and you will be rewarded.[/quote]



  • I'm continued with my experiment:

    @
    #include <QtGui/QApplication>
    #include "mainwindow.h"
    #include <QPainter>

    int main(int argc, char *argv[])
    {
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    QImage myImage(120,120,QImage::Format_Mono);
    QPainter painter( &myImage );

    return a.exec&#40;&#41;;
    

    }
    @
    now i must draw a bitmap with a text that i write in a text box..

    How I must proceed?

    thanks



  • Let me quote myself:
    [quote author="Andre" date="1333381873"]OK, great. So now you have a QPainter on your QImage. Time to use that painter for something useful, right. Can you spot a useful method for painting text in the QPainter documentation? [/quote]

    You're on the right way, but you might try to make slightly bigger strides before getting back here for more help...



  • i'm a novice and so i call help to you for to do this little application just for study.. :)



  • @painter.drawText(rect, Qt::AlignCenter, (textedit));@

    I not undstand: what is rect and after how take text from textedit on mainwindows.ui.?



  • The documentation of the function that you choose to use, states (among a lot of other stuff):
    [quote]Draws the given text within the provided rectangle.[/quote]
    So, the rectangle you provide in rect is the area in which the text will be rendered. In your case, you will want to be the whole image, so you provide the rectangle your image provides for these purposes:
    @
    QString text;
    //text = .... (see below)
    painter.drawText(myImage.rect(), Qt::AlignCenter, text);
    @

    OK?

    So, now for what to put on line 2 of the sample above. So far, you have put all your rendering code in your main() function. You may want to re-think that. That has nothing to do with Qt, but everything with object oriented C++ programming in general.

    I guess the code for rendering should go in a function inside your MainWindow class. If you do so, you'll automatically have access to the textedit that you put on your main window.



  • thanks Andre..
    I have a GUI project with:
    mainwindow.ui--> where i drawed a QLineEdit called textedit.
    mainwindow.h
    main.cpp
    mainwindow.cpp

    How to select textedit in mainwindow.ui instead of Qstring text?



  • What did you try already. I already told you: we're not here to guide you Every. Single. Step. Of. The. Way.

    Did you start in that free book you were recommended already?


Log in to reply