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. QT widget is not visible properly
Forum Updated to NodeBB v4.3 + New Features

QT widget is not visible properly

Scheduled Pinned Locked Moved Unsolved General and Desktop
2 Posts 2 Posters 467 Views
  • 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.
  • C Offline
    C Offline
    CorD SaC
    wrote on last edited by CorD SaC
    #1

    In this code which can able to play video and play *.mp3. code works properly,in my mainwindow.ui I added widget called widgetGif by drag and drop .This widget containing label also. but this widget not visible when I run the program. How can I display this widget called widgetGif

    here is part of my code :

    
        #include "mainwindow.h"
        #include "ui_mainwindow.h"
        #include <QDebug>
        #include <QMovie>
        
        
        MainWindow::MainWindow(QWidget *parent) :
            QMainWindow(parent),
            ui(new Ui::MainWindow)
        {
            ui->setupUi(this);
            player = new QMediaPlayer(this);
            vw = new QVideoWidget (this);
            player->setVideoOutput(vw);
            this->setCentralWidget(vw); //I think this is the reason
            
            slider = new QSlider(this);
            bar = new QProgressBar(this);
            slider->setOrientation(Qt::Horizontal);
            ui->statusBar->addPermanentWidget(slider);
            ui->statusBar->addPermanentWidget(bar);
            
            
            
            connect(player,&QMediaPlayer::durationChanged,slider,&QSlider::setMaximum);
            connect(player,&QMediaPlayer::positionChanged,slider,&QSlider::setValue);
            connect(slider,&QSlider::sliderMoved,player,&QMediaPlayer::setPosition);
            connect(player,&QMediaPlayer::durationChanged,bar,&QProgressBar::setMaximum);
            connect(player,&QMediaPlayer::positionChanged,bar,&QProgressBar::setValue);
            
            
            sliderVolumn = new QSlider(this);
            sliderVolumn->setOrientation(Qt::Horizontal);
            ui->statusBar->addPermanentWidget(sliderVolumn);
            
            connect(sliderVolumn,&QSlider::sliderMoved,player,&QMediaPlayer::setVolume);
            
            QMovie *movie=new QMovie(":/res/icons/giphy.gif");
            if (!movie->isValid())
            {
                // Something went wrong :(
            }
            ui->labelGif->setMovie(movie);
            movie->start();
            
            ui->widgetGif->setVisible(true);
        }
        
        
        MainWindow::~MainWindow()
        {
            delete ui;
        }
        
        void MainWindow::on_actionOpen_triggered()
        {
            QString filename= QFileDialog::getOpenFileName(this,"Open Folder","","Open a File(*.*)");
            on_actionStop_triggered();
            player->setMedia(QUrl::fromLocalFile(filename));
            on_actionPlay_triggered();
            
            if(filename.endsWith(".mp3")){
                qDebug() << " file is mp3";
                
            }else{
                qDebug() << " not is mp3";
                
            }
        }
    
    joeQJ 1 Reply Last reply
    0
    • C CorD SaC

      In this code which can able to play video and play *.mp3. code works properly,in my mainwindow.ui I added widget called widgetGif by drag and drop .This widget containing label also. but this widget not visible when I run the program. How can I display this widget called widgetGif

      here is part of my code :

      
          #include "mainwindow.h"
          #include "ui_mainwindow.h"
          #include <QDebug>
          #include <QMovie>
          
          
          MainWindow::MainWindow(QWidget *parent) :
              QMainWindow(parent),
              ui(new Ui::MainWindow)
          {
              ui->setupUi(this);
              player = new QMediaPlayer(this);
              vw = new QVideoWidget (this);
              player->setVideoOutput(vw);
              this->setCentralWidget(vw); //I think this is the reason
              
              slider = new QSlider(this);
              bar = new QProgressBar(this);
              slider->setOrientation(Qt::Horizontal);
              ui->statusBar->addPermanentWidget(slider);
              ui->statusBar->addPermanentWidget(bar);
              
              
              
              connect(player,&QMediaPlayer::durationChanged,slider,&QSlider::setMaximum);
              connect(player,&QMediaPlayer::positionChanged,slider,&QSlider::setValue);
              connect(slider,&QSlider::sliderMoved,player,&QMediaPlayer::setPosition);
              connect(player,&QMediaPlayer::durationChanged,bar,&QProgressBar::setMaximum);
              connect(player,&QMediaPlayer::positionChanged,bar,&QProgressBar::setValue);
              
              
              sliderVolumn = new QSlider(this);
              sliderVolumn->setOrientation(Qt::Horizontal);
              ui->statusBar->addPermanentWidget(sliderVolumn);
              
              connect(sliderVolumn,&QSlider::sliderMoved,player,&QMediaPlayer::setVolume);
              
              QMovie *movie=new QMovie(":/res/icons/giphy.gif");
              if (!movie->isValid())
              {
                  // Something went wrong :(
              }
              ui->labelGif->setMovie(movie);
              movie->start();
              
              ui->widgetGif->setVisible(true);
          }
          
          
          MainWindow::~MainWindow()
          {
              delete ui;
          }
          
          void MainWindow::on_actionOpen_triggered()
          {
              QString filename= QFileDialog::getOpenFileName(this,"Open Folder","","Open a File(*.*)");
              on_actionStop_triggered();
              player->setMedia(QUrl::fromLocalFile(filename));
              on_actionPlay_triggered();
              
              if(filename.endsWith(".mp3")){
                  qDebug() << " file is mp3";
                  
              }else{
                  qDebug() << " not is mp3";
                  
              }
          }
      
      joeQJ Offline
      joeQJ Offline
      joeQ
      wrote on last edited by joeQ
      #2

      @CorD-SaC Hi,friend. Welcome.

      Could you move below code to void MainWindow::showEvent function, try it.

      QMovie *movie=new QMovie(":/res/icons/giphy.gif");
              if (!movie->isValid())
              {
                  // Something went wrong :(
              }
              ui->labelGif->setMovie(movie);
              movie->start();
              
              ui->widgetGif->setVisible(true);
      

      Just do it!

      1 Reply Last reply
      1

      • Login

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