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 8.3k 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.
  • S Offline
    S Offline
    sasireka
    wrote on last edited by
    #7

    This is working fine for showing the next next picture by pressing the same key.

    Thanks alot to Francknos and all for your great help.

    @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();
        }
    

    }@

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

    Sasi

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

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

      Hi.
      Yeah it is possible.

      Be Cute

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

        [quote author="IamSumit" date="1412069646"]Hi.
        Yeah it is possible.

        [/quote]

        yes i done . thanks

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

        Sasi

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

        1 Reply Last reply
        0
        • F Offline
          F Offline
          Francknos
          wrote on last edited by
          #10

          construct a QVector<QMovie> _movies;
          and add it to constructor then when you press F2:

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

          1 Reply Last reply
          0
          • 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

                                          • Login

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