MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
    //Create central widget and set main layout
    wgtMain_ = new QWidget(this);
    lytMain_ = new QGridLayout(wgtMain_);
    wgtMain_->setLayout(lytMain_);
    setCentralWidget(wgtMain_);

    //Initialize widgets
    mediaPlayer_  = new QMediaPlayer(this); // Objeto que se encarga del video
    playerSlider_ = new QSlider(Qt::Horizontal, this); // Barra de tiempo de reproducción
    videoWidget_  = new QVideoWidget(this); // Recuadro negro de vídeo
    volumeSlider_ = new QSlider(Qt::Horizontal, this); // Barra de volumen
    btnOpen_      = new QToolButton(this);
    btnPlay_      = new QToolButton(this);
    btnPause_     = new QToolButton(this);
    btnStop_      = new QToolButton(this);

    //Setup widwgets
    videoWidget_->setMinimumSize(400, 400);
    mediaPlayer_->setVideoOutput(videoWidget_); // Añadir el recuadro al reproductor
    mediaPlayer_->setVolume(100);
    videoWidget_->setAspectRatioMode(Qt::KeepAspectRatio);
    volumeSlider_->setRange(0, 100);
    volumeSlider_->setSliderPosition(100);

    //Populate grid layout
    lytMain_->addWidget(videoWidget_,  0, 0, 1, 5);
    lytMain_->addWidget(playerSlider_, 1, 0, 1, 5);
    lytMain_->addWidget(btnOpen_,      2, 0, 1, 1);
    lytMain_->addWidget(btnPlay_,      2, 1, 1, 1);
    lytMain_->addWidget(btnPause_,     2, 2, 1, 1);
    lytMain_->addWidget(btnStop_,      2, 3, 1, 1);
    lytMain_->addWidget(volumeSlider_, 2, 4, 1, 1);

    //Buttons icons
    btnOpen_->setIcon(QIcon(QPixmap(":/icons/resources/eject.png")));
    btnPause_->setIcon(QIcon(QPixmap(":/icons/resources/pause.png")));
    btnPlay_->setIcon(QIcon(QPixmap(":/icons/resources/play.png")));
    btnStop_->setIcon(QIcon(QPixmap(":/icons/resources/stop.png")));

    //Connections
    connect(btnOpen_,      SIGNAL(pressed()),               this,         SLOT(onOpen()));
    connect(btnPlay_,      SIGNAL(pressed()),               mediaPlayer_, SLOT(play()));
    connect(btnPause_,     SIGNAL(pressed()),               mediaPlayer_, SLOT(pause()));
    connect(btnStop_,      SIGNAL(pressed()),               mediaPlayer_, SLOT(stop()));
    connect(playerSlider_, SIGNAL(sliderReleased()),        this,         SLOT(onSeek()));
    connect(mediaPlayer_,  SIGNAL(durationChanged(qint64)), this,         SLOT(onDurationChanged(qint64)));
    connect(mediaPlayer_,  SIGNAL(positionChanged(qint64)), this,         SLOT(onPositionChanged(qint64)));
    connect(volumeSlider_, SIGNAL(sliderMoved(int)),        this,         SLOT(onVolumeChanged(int)));

    // Inicializamos los elementos del menú
    mainMenu_ = new QMenuBar(this);
    mnuArchivo_ = new QMenu(tr("&Archivo"), this);
    mnuVer_ = new QMenu(tr("&Ver"), this);
    mnuAyuda_ = new QMenu(tr("&Ayuda"), this);
    mnuStreaming_ = new QMenu(tr("&Streaming"), this);

    // Añadimos los elementos al menú
    mainMenu_->addMenu(mnuArchivo_);
    mainMenu_->addMenu(mnuVer_);
    mainMenu_->addMenu(mnuAyuda_);
    mainMenu_->addMenu(mnuStreaming_);

    // Inicializamos acciones de los elementos del menú
    // Añadimos las acciones a los elementos
    // Añadimos los shortcuts correspondientes
    actArchivoAbrir_ = new QAction(tr("Abrir..."), this);
    actArchivoAbrir_->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O));
    mnuArchivo_->addAction(actArchivoAbrir_);

    mnuArchivoRecientes_ = new QMenu(tr("Recientes"), this);
    mnuArchivo_->addMenu(mnuArchivoRecientes_);

    actVerMetadatos_ = new QAction(tr("Metadatos"), this);
    mnuVer_->addAction(actVerMetadatos_);

    actVerPantallaCompleta_ = new QAction(tr("Pantalla completa"), this);
    actVerPantallaCompleta_->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_F11));
    mnuVer_->addAction(actVerPantallaCompleta_);

    actAyudaAcercaDe_ = new QAction(tr("Acerca de"), this);
    mnuAyuda_->addAction(actAyudaAcercaDe_);

    actStreamingReproducir_ = new QAction(tr("Reproducir fuente"), this);
    mnuStreaming_->addAction(actStreamingReproducir_);

    // Añadir barra de menús a la ventana
    setMenuBar(mainMenu_);

    // Conexiones del menú
    connect(actArchivoAbrir_, SIGNAL(triggered()), this, SLOT(onOpen()));
    connect(actVerPantallaCompleta_, SIGNAL(triggered()), this, SLOT(pantallaCompleta()));
    connect(actVerMetadatos_, SIGNAL(triggered()), this, SLOT(showMetadata()));
    connect(actAyudaAcercaDe_, SIGNAL(triggered()), this, SLOT(alAcercade()));
    connect(actStreamingReproducir_, SIGNAL(triggered()), this, SLOT(alStreaming()));

    // Hace que funcione el eventfilter
    videoWidget_->installEventFilter(this);

    // Mostramos el historial de recientes
    this->alRecientes();

    // Inicializamos una fuente de streaming por defecto
    maximaFM_ = "http://208.92.53.87:80/MAXIMAFM";
}
Ejemplo n.º 2
0
NotepadWindow::NotepadWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //Establecemos el tamaño inicial de la ventana
    this->setGeometry(30, 30, 800, 600);

    //Establecemos el título de la ventana
    this->setWindowTitle(tr("Editor QTextEdit"));

    //Inicializamos los menús
    mainMenu_ = new QMenuBar(this); //Ponemos el menu arriba

    mnuArchivo_ = new QMenu(tr("&Archivo"), this);
    mainMenu_->addMenu(mnuArchivo_);//añadimos archivo a la barra de menu de arriba

    actArchivoAbrir_ = new QAction(tr("&Abrir"), this);
    //La & es para que aparezla la rayita debajo de la letra que le sigue y poder darle con alt+A (en este caso)
    actArchivoAbrir_->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O));
    mnuArchivo_->addAction(actArchivoAbrir_);

    actArchivoGuardar_ = new QAction(QIcon("guardar.PNG"),tr("&Guardar"), this);
    actArchivoGuardar_->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_S));
    mnuArchivo_->addAction(actArchivoGuardar_);

    //Por mi Guardar Como

    actArchivoGuardarComo_ = new QAction(QIcon("guardarcomo.png"),tr("Guardar Como"), this);
    mnuArchivo_->addAction(actArchivoGuardarComo_);
    connect(actArchivoGuardarComo_, SIGNAL(triggered()), this, SLOT(alGuardarComo()));


    mnuEditar_ = new QMenu(tr("&Editar"), this);
    mainMenu_->addMenu(mnuEditar_);

    actEditarCopiar_ = new QAction(QIcon("copiar.png"),tr("&Copiar"), this);
    actEditarCopiar_->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_C));
    mnuEditar_->addAction(actEditarCopiar_);

    actEditarPegar_ = new QAction(QIcon("pegar.png"),tr("&Pegar"),this);
    actEditarPegar_->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_V));
    mnuEditar_->addAction(actEditarPegar_);

    mnuFormato_ = new QMenu(tr("&Formato"), this);
    mainMenu_->addMenu(mnuFormato_);

    actFormatoFuente_ = new QAction(tr("&Fuente"), this);
    mnuFormato_->addAction(actFormatoFuente_);

    //Agregamos la barra de menú a la ventana
    this->setMenuBar(mainMenu_);

    //Inicializamos el editor de texto
    txtEditor_ = new QTextEdit(this);

    //Conectamos las acciones de los menús con nuestros slots
    connect(actArchivoAbrir_, SIGNAL(triggered()), this, SLOT(alAbrir()));
    connect(actArchivoGuardar_, SIGNAL(triggered()), this, SLOT(alGuardar()));
    connect(actEditarCopiar_, SIGNAL(triggered()), txtEditor_, SLOT(copy()));
    connect(actEditarPegar_, SIGNAL(triggered()), txtEditor_, SLOT(paste()));
    connect(actFormatoFuente_, SIGNAL(triggered()), this, SLOT(alFuente()));

    //Agregamos el editor de texto a la ventana
    this->setCentralWidget(txtEditor_);

    //Por mi CERRAR
    actArchivoCerrar_ = new QAction(tr("&Cerrar"), this);
    mnuArchivo_->addAction(actArchivoCerrar_);

    connect(actArchivoCerrar_, SIGNAL(triggered()),this,SLOT(close()));

    //Por mi CORTAR
    actEditarCortar_ = new QAction(QIcon("cortar.png"),tr("&Cortar"),this);
    mnuEditar_->addAction(actEditarCortar_);

    connect(actEditarCortar_, SIGNAL(triggered()), txtEditor_, SLOT(cut()));

    //Por mi deshacer
    actEditarDeshacer_ = new QAction(QIcon("deshacer.png"),tr("&Deshacer"),this);
    actEditarDeshacer_->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Z));
    mnuEditar_->addAction(actEditarDeshacer_);

    connect(actEditarDeshacer_, SIGNAL(triggered()), txtEditor_, SLOT(undo()));

    //Por mi rehacer

    actEditarRehacer_ = new QAction(QIcon("rehacer.png"),tr("&Rehacer"),this);
    mnuEditar_->addAction(actEditarRehacer_);

    connect(actEditarRehacer_, SIGNAL(triggered()), txtEditor_, SLOT(redo()));

    //Por mi ayuda/acerca de
    mnuAyuda_ = new QMenu(tr("&Ayuda"), this);
    mainMenu_->addMenu(mnuAyuda_);

    actAyudaAcercade_ = new QAction(tr("&Acerca de"),this);
    mnuAyuda_->addAction(actAyudaAcercade_);

    connect(actAyudaAcercade_, SIGNAL(triggered()), this, SLOT(alAcercade()));

    //Por mi toolbar
    toolbarMenu_ = new QToolBar(this);
    this->addToolBar(toolbarMenu_);

    //Añadimos las opciones al toolbar

    toolbarMenu_->addAction(actArchivoGuardar_);

    toolbarMenu_->addAction(actEditarCopiar_);

    toolbarMenu_->addAction(actEditarCortar_);

    toolbarMenu_->addAction(actEditarPegar_);

    toolbarMenu_->addAction(actEditarDeshacer_);

    toolbarMenu_->addAction(actEditarRehacer_);

    //Por mi Negrita

    actToolBarNegrita_ = new QAction(QIcon("negrita.png"),tr("Negrita"),this);
    toolbarMenu_->addAction(actToolBarNegrita_);
    connect(actToolBarNegrita_, SIGNAL(triggered()), this, SLOT(alNegrita()));


    //Por mi Cursiva

    actToolBarCursiva_ = new QAction(QIcon("cursiva.png"),tr("Cursiva"),this);
    toolbarMenu_->addAction(actToolBarCursiva_);
    connect(actToolBarCursiva_, SIGNAL(triggered()), this, SLOT(alCursiva()));


    //Por mi Subrayado

    actToolBarSubrayado_ = new QAction(QIcon("subrayado.png"),tr("Subrayado"),this);
    toolbarMenu_->addAction(actToolBarSubrayado_);
    connect(actToolBarSubrayado_, SIGNAL(triggered()), this, SLOT(alSubrayado()));



}