Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. [SOLVED] changing image using keypress
Forum Updated to NodeBB v4.3 + New Features

[SOLVED] changing image using keypress

Scheduled Pinned Locked Moved General and Desktop
28 Posts 3 Posters 7.9k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • IamSumitI Offline
    IamSumitI Offline
    IamSumit
    wrote on last edited by
    #11

    @void Dialog::keyPressEvent(QKeyEvent *e)
    {

    static int key_press;
    
    if(e->key() == Qt::Key_F2)
    {
        key_press++;
    }
    
    if(key_press == 1)
        {
                QMovie *movie = new QMovie("/home/dev6/Desktop/animation/spectrum.gif");
                QLabel *processLabel = new QLabel(this);
                ui->processLabel->setMovie(movie);
                movie->start();
    
                ui->label1->setText(QString::fromUtf8("chennai  சென்னை"));
                ui->label1->show();
        }
    
     if(key_press == 2)
        {
                QMovie *movie = new QMovie("/home/dev6/Desktop/animation/1.gif");
                QLabel *processLabel = new QLabel(this);
                ui->processLabel->setMovie(movie);
                movie->start();
    
                ui->label1->setText(QString::fromUtf8("சென்னை Namakkal"));
                ui->label1->show();
        }
     if(key_press == 3)
        {
                QMovie *movie = new QMovie("/home/dev6/Desktop/animation/2.gif");
                QLabel *processLabel = new QLabel(this);
                ui->processLabel->setMovie(movie);
                movie->start();
    
                ui->label1->setText(QString::fromUtf8("coimbatore சென்னை"));
                ui->label1->show();
        }
    

    }@

    hi..
    this is not a right way.Because many of same instructions are repeating.

    you can optimize your code .You must create a method with parameter QString path
    e'g;
    @
    void ShowPicture(QString path)
    {
    QMovie *movie = new QMovie(path);
    QLabel *processLabel = new QLabel(this);
    ui->processLabel->setMovie(movie);
    movie->start();

                ui->label1->setText(QString::fromUtf8("chennai  சென்னை"));
                ui->label1->show();
    

    }
    @
    hope it helps

    Be Cute

    1 Reply Last reply
    0
    • S Offline
      S Offline
      sasireka
      wrote on last edited by
      #12

      [quote author="Francknos" date="1412070831"]construct a QVector<QMovie> _movies;
      and add it to constructor then when you press F2:

      cpt++
      ui->processLabel->setMovie(_movies[cpt]);
      _movies[cpt]->start();
      [/quote]

      okay i will try in this way...

      .................................
      Thanks & Regards

      Sasi

      .................................
      Go Green

      1 Reply Last reply
      0
      • S Offline
        S Offline
        sasireka
        wrote on last edited by
        #13

        [quote author="IamSumit" date="1412074165"]

        hi..
        this is not a right way.Because many of same instructions are repeating.

        you can optimize your code .You must create a method with parameter QString path
        e'g;
        @
        void ShowPicture(QString path)
        {
        QMovie *movie = new QMovie(path);
        QLabel *processLabel = new QLabel(this);
        ui->processLabel->setMovie(movie);
        movie->start();

                    ui->label1->setText(QString::fromUtf8("chennai  சென்னை"));
                    ui->label1->show();
        

        }
        @
        hope it helps[/quote]

        okay. How to call this function and where to call it.

        .................................
        Thanks & Regards

        Sasi

        .................................
        Go Green

        1 Reply Last reply
        0
        • S Offline
          S Offline
          sasireka
          wrote on last edited by
          #14

          i used like this getting error

          /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:53: error: a function-definition is not allowed here before '{' token

          /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:69: error: 'ShowPicture' was not declared in this scope

          @void Dialog::keyPressEvent(QKeyEvent *e)
          {

          void ShowPicture(QString path)
          {
                          QMovie *movie = new QMovie(path);
                          QLabel *processLabel = new QLabel(this);
                          ui->processLabel->setMovie(movie);
                          movie->start();
          
                          ui->label1->setText(QString::fromUtf8("chennai  சென்னை"));
                          ui->label1->show();
          }
          
          static int key_press = 0;
          
          if(e->key() == Qt::Key_F3)
          {
          
             // QString path = "/home/dev6/Desktop/animation/3.gif";
              ShowPicture("/home/dev6/Desktop/animation/3.gif");
              
          }@
          

          .................................
          Thanks & Regards

          Sasi

          .................................
          Go Green

          1 Reply Last reply
          0
          • IamSumitI Offline
            IamSumitI Offline
            IamSumit
            wrote on last edited by
            #15

            [quote author="sasireka" date="1412078116"]i used like this getting error

            /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:53: error: a function-definition is not allowed here before '{' token

            /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:69: error: 'ShowPicture' was not declared in this scope

            @void Dialog::keyPressEvent(QKeyEvent *e)
            {

            void ShowPicture(QString path)
            {
                            QMovie *movie = new QMovie(path);
                            QLabel *processLabel = new QLabel(this);
                            ui->processLabel->setMovie(movie);
                            movie->start();
            
                            ui->label1->setText(QString::fromUtf8("chennai  சென்னை"));
                            ui->label1->show();
            }
            
            static int key_press = 0;
            
            if(e->key() == Qt::Key_F3)
            {
            
               // QString path = "/home/dev6/Desktop/animation/3.gif";
                ShowPicture("/home/dev6/Desktop/animation/3.gif");
                
            }@[/quote]
            

            hi..
            After looking your code ...i think you are new to programming.are you?
            you are defining the method inside another method .this is not the correct
            way
            just call ShowPicture("/home/dev6/Desktop/animation/2.gif");
            then you will not face any error.
            hope it helps

            Be Cute

            1 Reply Last reply
            0
            • S Offline
              S Offline
              sasireka
              wrote on last edited by
              #16

              [quote author="IamSumit" date="1412079562"][quote author="sasireka" date="1412078116"]i used like this getting error

              /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:53: error: a function-definition is not allowed here before '{' token

              /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:69: error: 'ShowPicture' was not declared in this scope

              @void Dialog::keyPressEvent(QKeyEvent *e)
              {

              void ShowPicture(QString path)
              {
                              QMovie *movie = new QMovie(path);
                              QLabel *processLabel = new QLabel(this);
                              ui->processLabel->setMovie(movie);
                              movie->start();
              
                              ui->label1->setText(QString::fromUtf8("chennai  சென்னை"));
                              ui->label1->show();
              }
              
              static int key_press = 0;
              
              if(e->key() == Qt::Key_F3)
              {
              
                 // QString path = "/home/dev6/Desktop/animation/3.gif";
                  ShowPicture("/home/dev6/Desktop/animation/3.gif");
                  
              }@[/quote]
              

              hi..
              After looking your code ...i think you are new to programming.are you?
              you are defining the method inside another method .this is not the correct
              way
              just call ShowPicture("/home/dev6/Desktop/animation/2.gif");
              then you will not face any error.
              hope it helps[/quote]

              good day. yes i am new to Qt programming. Okay i will do like this. Thanks Sumit. Give me a guide to learn Qt programming and library usage.

              .................................
              Thanks & Regards

              Sasi

              .................................
              Go Green

              1 Reply Last reply
              0
              • S Offline
                S Offline
                sasireka
                wrote on last edited by
                #17

                bq. hi..
                After looking your code ...i think you are new to programming.are you?
                you are defining the method inside another method .this is not the correct
                way
                just call ShowPicture("/home/dev6/Desktop/animation/2.gif");
                then you will not face any error.
                hope it helps[/quote]bq.

                i did like below. but getting errors.

                @void ShowPicture(QString path)
                {
                QMovie *movie = new QMovie(path);
                QLabel *processLabel = new QLabel(this);
                ui->processLabel->setMovie(movie);
                movie->start();

                            ui->label1->setText(QString::fromUtf8("chennai  சென்னை"));
                            ui->label1->show();
                

                }

                void Dialog::keyPressEvent(QKeyEvent *e)
                {

                if(e->key() == Qt::Key_F3)
                {
                        ShowPicture(”/home/dev6/Desktop/animation/2.gif”);
                }
                

                }@

                .................................
                Thanks & Regards

                Sasi

                .................................
                Go Green

                1 Reply Last reply
                0
                • IamSumitI Offline
                  IamSumitI Offline
                  IamSumit
                  wrote on last edited by
                  #18

                  Hi .
                  Can you show me your full code (including .h)?
                  and tell me what errors you are getting also?

                  Be Cute

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    sasireka
                    wrote on last edited by
                    #19

                    [quote author="IamSumit" date="1412144476"]Hi .
                    Can you show me your full code (including .h)?
                    and tell me what errors you are getting also?

                    [/quote]

                    @#include "dialog.h"
                    #include "ui_dialog.h"
                    #include <QMovie>
                    #include <QImage>
                    #include <QFontDatabase>
                    #include <QDebug>
                    #include <QKeyEvent>

                    Dialog::Dialog(QWidget *parent) :
                    QDialog(parent),
                    ui(new Ui::Dialog)
                    {
                    ui->setupUi(this);
                    }

                    Dialog::~Dialog()
                    {
                    delete ui;
                    }

                    void ShowPicture(QString path)
                    {
                    QMovie *movie = new QMovie(path);
                    QLabel *processLabel = new QLabel(this);
                    ui->processLabel->setMovie(movie);
                    movie->start();

                                ui->label1->setText(QString::fromUtf8("chennai  சென்னை"));
                                ui->label1->show();
                    

                    }

                    void Dialog::keyPressEvent(QKeyEvent *e)
                    {

                    if(e->key() == Qt::Key_F3)
                    {
                            ShowPicture(”/home/dev6/Desktop/animation/2.gif”);
                    }
                    

                    }@

                    .................................
                    Thanks & Regards

                    Sasi

                    .................................
                    Go Green

                    1 Reply Last reply
                    0
                    • IamSumitI Offline
                      IamSumitI Offline
                      IamSumit
                      wrote on last edited by
                      #20

                      ok.
                      ShowPicture(QString) is the member function/method of Dialog class.
                      i can't see proper definition of this method.
                      in line 21.
                      @
                      Replace void Dialog::ShowPicture(QString path)
                      @

                      and in .h file declare this method as member.
                      in .h file. add this line
                      @
                      public:
                      void ShowPicture(QString path);
                      @

                      and your oops basics are not clear.So, Please improve your basics first.

                      Hope it helps.

                      Be Cute

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        sasireka
                        wrote on last edited by
                        #21

                        i tried . but still getting error

                        .................................
                        Thanks & Regards

                        Sasi

                        .................................
                        Go Green

                        1 Reply Last reply
                        0
                        • IamSumitI Offline
                          IamSumitI Offline
                          IamSumit
                          wrote on last edited by
                          #22

                          What errors ?

                          Be Cute

                          1 Reply Last reply
                          0
                          • S Offline
                            S Offline
                            sasireka
                            wrote on last edited by
                            #23

                            Good day.
                            [quote author="IamSumit" date="1412164041"]What errors ?[/quote]

                            @void Dialog::ShowPicture(QString path)
                            {
                            QMovie *movie = new QMovie(path);
                            QLabel *processLabel = new QLabel(this);
                            ui->processLabel->setMovie(movie);
                            movie->start();

                                        ui->label1->setText(QString::fromUtf8("chennai  சென்னை"));
                                        ui->label1->show();
                            

                            }

                            void Dialog::keyPressEvent(QKeyEvent *e)
                            {

                            if(e->key() == Qt::Key_F3)
                            {
                                    ShowPicture(/home/dev6/Desktop/animation/2.gif);
                            }
                            

                            }@

                            errors:

                            1. /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:70: error: invalid suffix "gif" on floating constant

                            2. * /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:-1: In member function 'void Dialog::ShowPicture(QString)':
                            1
                            <* /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:70: error: expected primary-expression before '/' token

                            2< /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:70: error: 'home' was not declared in this scope

                            3< /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:70: error: 'home' was not declared in this scope

                            4< /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:70: error: 'Desktop' was not declared in this scope

                            5< /home/dev6/Desktop/animation-build-desktop-Qt_4_8_1_in_PATH__System__Release/../animation/dialog.cpp:70: error: 'animation' was not declared in this scope

                            .................................
                            Thanks & Regards

                            Sasi

                            .................................
                            Go Green

                            1 Reply Last reply
                            0
                            • IamSumitI Offline
                              IamSumitI Offline
                              IamSumit
                              wrote on last edited by
                              #24

                              Hi.
                              You are not passing a string .string always encloses " " quotes.
                              @
                              19.ShowPicture(/home/dev6/Desktop/animation/2.gif);
                              @
                              Correct it as .
                              ShowPicture("/home/dev6/Desktop/animation/2.gif");

                              Be Cute

                              1 Reply Last reply
                              0
                              • S Offline
                                S Offline
                                sasireka
                                wrote on last edited by
                                #25

                                [quote author="IamSumit" date="1412585094"]Hi.
                                You are not passing a string .string always encloses " " quotes.
                                @
                                19.ShowPicture(/home/dev6/Desktop/animation/2.gif);
                                @
                                Correct it as .
                                ShowPicture("/home/dev6/Desktop/animation/2.gif");
                                [/quote]

                                yes.. really i am so sorry.Thanks alot. great help.

                                .................................
                                Thanks & Regards

                                Sasi

                                .................................
                                Go Green

                                1 Reply Last reply
                                0
                                • S Offline
                                  S Offline
                                  sasireka
                                  wrote on last edited by
                                  #26

                                  Thanks alot IamSumit IamSumit and all.

                                  .................................
                                  Thanks & Regards

                                  Sasi

                                  .................................
                                  Go Green

                                  1 Reply Last reply
                                  0
                                  • IamSumitI Offline
                                    IamSumitI Offline
                                    IamSumit
                                    wrote on last edited by
                                    #27

                                    That's ok .

                                    Now please Make your thread title as [SOLVED] so others could notify that solution has been found.:)

                                    Be Cute

                                    1 Reply Last reply
                                    0
                                    • S Offline
                                      S Offline
                                      sasireka
                                      wrote on last edited by
                                      #28

                                      [quote author="IamSumit" date="1412587771"]That's ok .

                                      Now please Make your thread title as [SOLVED] so others could notify that solution has been found.:)[/quote]

                                      yes.. done IamSumit. :)

                                      Happy Coding :)

                                      .................................
                                      Thanks & Regards

                                      Sasi

                                      .................................
                                      Go Green

                                      1 Reply Last reply
                                      0

                                      • Login

                                      • Login or register to search.
                                      • First post
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • Users
                                      • Groups
                                      • Search
                                      • Get Qt Extensions
                                      • Unsolved